展示如何使用MFC创建线程的示例代码将线程函数声明为静态和__cdecl
。为什么需要后者?Boost线程不关心这个约定,所以这只是一种过时的做法吗?
例如(MFC):
static __cdecl UINT MyFunc(LPVOID pParam)
{
...
}
CWinThread* pThread = AfxBeginThread(MyFunc, ...);
相比之下,Boost:
static void func()
{
...
}
boost::thread t;
t.create(&func);
(由于我离集成开发环境很远,因此代码示例可能不是100%正确)。
__cdecl的意义是什么?在创建线程时它如何帮助?