新手的多线程问题
在下在MFC里面编程,用CreateThread创建一个线程,但是在线程函数void CTry3Dlg::ThreadFunc()他是CTry3Dlg的一个成员函数,我把CreateThread函数写在void CTry3Dlg::OnButton3() 里面,格式如下:
void CTry3Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
hThread=CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadFunc,
NULL,
0,
&ThreadID);
}
编译时候报错说:error C2664: 'CreateThread' : cannot convert parameter 3 from ' ' to 'unsigned long (__stdcall *)(void *)'
None of the functions with this name in scope match the target type
英文理解上是第三个参数格式错误,请问各位高手怎么改?
[解决办法]
线程函数如果是类的成员函数必须要是静态的,否则可以定义为全局函数;