可以参考”C# 对 Windows 窗体控件进行线程安全调用“一文来看。
在做网络连接程序的时候碰到一个问题:每当连接到来时,都创建一个新的接收线程,而该接收线程在接收到消息时,可以创建一个新的对话窗口,而该窗口不能阻塞该接收线程的下一轮消息的接收,而且该接收线程还要把接收到的消息显示在该窗口上
Form.ShowDialog();方法弹出模态对话框,而模态对话框会阻塞后面代码的执行,导致接收线程无法继续执行(除非该模态窗口被关闭)
刚开始想到的解决办法,就是:通过Form.Show();方法,显示非模态的窗口
非模态对话框有几个问题: