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;
}



你可能感兴趣的:(多线程,mfc)