工作线程不要对界面操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010839382/article/details/53107584

MFC并不是线程安全的,用子线程操作用户界面,可能导致线程主线程无法终止。

例如在子线程处理函数中进行如下操作:

Ondestroy中等待子线程结束:


当关闭对话框时后,从资源管理器中依旧可以看到线程并未终止。



另外,企图在线程处理函数结束时弹出一个MessageBox进行直观确认时,不能使用MFC中的MessageBoX,因其默认以对话框作为父窗口,这样也会导致主线程无法结束。而需要使用标准的Windows API并将父窗口置为NULL。


当使用MessageBox(L"a")时,关闭对话框后并没有MessageBox弹出,且从资源管理器中可发现子线程无法关闭。

测试代码下载

猜你喜欢

转载自blog.csdn.net/u010839382/article/details/53107584