解决线程中的非模式对话框

今天在演示网络编程的时候发现,子线程中的MessageBox.Show竟然不是模式对话框。
而主线程(窗体线程)的MessageBox是模式的。
虽然问题很小,但是可能会带来其他后果,对于程序员而言,任何一个小问题也不能忽视。仔细考虑了一下,主线程的对话框就是针对窗体的,所以是模式的。而子线程的对话框是在该线程上操作,如果要使其成为模式对话框就和主线程之间产生了关系。打开MSDN,其中有一个对话框声明是:MessageBox.Show (IWin32Window, String) ;IWin32Window是Win32句柄的接口,Form类间接实现了该接口,所以可以这样使用:MessageBox.Show((IWin32Window)this,"子线程对话框");在子线程运行后,发现成为了模式对话框。
小结:
1. 对待任何小节都不能忽视,应该用严谨的态度看待,并解决;
2. 线程的操作中可能会产生很多意想不到的问题,应该多测试并细心观察。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值