1.最近遇到一个问题,点击一个按钮,循环执行一个函数,但发现不再响应其他按钮操作,后来使用了双线程的方法。
在dlg头文件里定义CWinThread* pThread;
pThread=AfxBeginThread(
handfuc,
THREAD_PRIORITY_NORMAL,
0,
NULL,
NULL);
UINT handfuc(LPVOID lpParam);
推荐通过修改全局变量使进程退出。
2.在程序退出时,如果按照原来的方法,修改全局变量让handfuc退出会出错,需要调用退出函数之前结束进程,所以需要在退出函数里添加一个等待函数
HANDLE handle0=pThread->m_hThread;
WaitForSingleObject(handle0,INFINITE);
。。。
CDialogEx::OnCancel();
本文介绍了一个关于按钮点击后导致其他操作无响应的问题,并通过使用双线程及适当处理线程间同步来解决该问题。文章详细说明了如何在对话框中创建和管理一个独立的工作线程,以及如何安全地关闭该线程。
2万+

被折叠的 条评论
为什么被折叠?



