__declspec(thread)intnCount=0;//线程局部变量DWORDWINAPIthreadProc(LPVOID*wparm){inti=0;while(1){if(i==20)break;Sleep(30);nCount=i++;CStringstr;str.Format(_T("%d\n"),nCount);TRACE(str);}return0;}voidCtestThreadDlg::OnBnClickedButton14(){HANDLEhandle=::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)threadProc,this,0,NULL);//函数类型转换}

将类的成员函数,作为线程的回调函数.代码如下:

classtest{UINTm_nCount;public:UINTWINAPIthreadProc(LPVOID*wparm);}UINT__stdcalltest::threadProc(LPVOID*wparm){inti=0;while(1){if(i==20)break;Sleep(30);m_nCount=i++;CStringstr;str.Format(_T("%d\n"),m_nCount);TRACE(str);}return0;}voidtest::OnBnClickedStart(){typedefUINT(__stdcall*stdProc)(LPVOID);typedefUINT(__stdcalltest::*ProcObject)(LPVOID);ProcObjecttheProc=(ProcObject)&test::threadProc;HANDLEhandle=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)*(stdProc*)&theProc,this,0,NULL);}