问题:MFC中创建一个新的线程,由于创建的线程需要说明成static,而static类型是不能直接使用类的内部变量的,解决办法是把this指针做为参数传递给线程,最好在线程内直接调用一个类内函数,然后在这个函数内就可以自由的使用所有变量,省掉所有的this->
一、创建线程:传递this指针
HANDLE hThead=CreateThread(NULL,0,ThreadProcAccept,(LPVOID)this,0,NULL);
CloseHandle(hThead);
二、线程中使用this调用一个类内函数
DWORD WINAPI CViewerDlg::ThreadProcAccept(LPVOID lpParameter)
{
CViewerDlg * pTaskMain = (CViewerDlg *) lpParameter; //把this指针传进来
pTaskMain->my_accept();
return 0;
}
三、在函数内自由使用变量
void CViewerDlg::my_accept(void)
{
//接收数据
}