如何使用 CreateThread()
来创建属于类成员的函数线程?
最佳答案
您需要创建一个静态方法用作实际的线程启动函数,并将指向实例的指针作为 lpParameter
参数传递给 CreateThread
。这将被传递给静态方法,该方法可以将其转换为对象指针并调用成员函数。
class MyClass
{
static DWORD WINAPI StaticThreadStart(void* Param)
{
MyClass* This = (MyClass*) Param;
return This->ThreadStart();
}
DWORD ThreadStart(void)
{
// Do stuff
}
void startMyThread()
{
DWORD ThreadID;
CreateThread(NULL, 0, StaticThreadStart, (void*) this, 0, &ThreadID);
}
};
关于c++ - 您如何将 CreateThread 用于作为类成员的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372967/