0
点赞
收藏
分享

微信扫一扫

MFC 多线程实践

很多文章里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;
}





举报

相关推荐

0 条评论