我注意到了这个
HandleWorker = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)this->WorkerThread, this, 0, &Id);
我知道这个问题here,它解释了LPTHREAD_START_ROUTINE
类型定义的问题
线程的起始地址
但有人可以向我解释我们什么时候需要使用它?我的意思是为什么我们不能使用
HandleWorker = CreateThread(NULL, 0, this->WorkerThread, this, 0, &Id);
答案 0 :(得分:2)
LPTHREAD_START_ROUTINE是一个定义为函数指针的类型,它接受一个void指针并返回一个DWORD。
如果this->WorkerThread
属于那种类型,则不必进行投射。