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

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

你可能感兴趣的:(解决线程中的非模式对话框)