很多文章里MFC多线程讲的比较复杂,这里直接上代码,最简洁的实现方式:
一、CreateThread
1.在Dlg.h定义protected 变量:
//加的多线程用变量
HANDLE hThread;
DWORD ThreadID;
2.主程序里定义:
volatile bool m_bRun;
UINT UDPReceiveProc(LPVOID lpParam);
void CSerialTestDlg::OnClickedButtonUdpbroad()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,NULL,0,&ThreadID);
return ;
}
UINT ThreadProc(LPVOID lpParam){
while(1);
}
二、AfxBeginThread
头定义:
static UINT UDPReceiveProc(LPVOID pParam); //多线程使用
DWORD WINAPI UDPReceiveProc(LPVOID lpParam);
void CSerialTestDlg::OnClickedButtonUdpbroad()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
//hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)UDPReceiveProc,NULL,0,&ThreadID);
AfxBeginThread(UDPReceiveProc,&txt_udp_data,THREAD_PRIORITY_IDLE);
return ;
}
//UINT UDPReceiveProc(LPVOID lpParam){ CreateThread
UINT CSerialTestDlg::UDPReceiveProc(LPVOID pParam){
CEdit *udp_data=(CEdit *)pParam;
}