工作线程不要对界面操作

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

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

Ondestroy中等待子线程结束:


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



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


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

测试代码下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚沙塔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值