Winforms MessageBox卡住主线程

时间:2014-04-01 12:51:45

标签: .net multithreading winforms client-server messagebox

我在winforms上的messagebox有问题。 似乎当显示消息框时,主线程被卡住,这会导致系统中出现其他错误。

有2个系统,一个客户端和一个服务器。客户端具有更新GUI并监听来自其他系统的事件的多个线程,当显示消息框时,这些线程无法访问GUI,因为消息框使用主线程,并且会导致错误。

有没有办法让消息框不使用主线程?

1 个答案:

答案 0 :(得分:1)

你必须改变你的想法。它不是MessageBox不应该使用主线程,它确实是你的保持活动请求不应该MessageBox不会是唯一可能阻止发送请求的内容:任何模式形式都可能导致完全相同的问题。

这里的真正解决方案是您更改应用程序的设计,以便它在循环后台线程中而不是主UI中发送您的请求,在调用之间使用Thread.Sleep您的请求以合理的时间间隔进行。无论是对MessageBox.Show()的任何调用,这都将继续滚动。

如果您需要以任何方式更改该线程的UI,您只需使用invocation methods