我在winforms上的messagebox有问题。 似乎当显示消息框时,主线程被卡住,这会导致系统中出现其他错误。
有2个系统,一个客户端和一个服务器。客户端具有更新GUI并监听来自其他系统的事件的多个线程,当显示消息框时,这些线程无法访问GUI,因为消息框使用主线程,并且会导致错误。
有没有办法让消息框不使用主线程?
答案 0 :(得分:1)
你必须改变你的想法。它不是MessageBox
不应该使用主线程,它确实是你的保持活动请求不应该。 MessageBox
不会是唯一可能阻止发送请求的内容:任何模式形式都可能导致完全相同的问题。
这里的真正解决方案是您更改应用程序的设计,以便它在循环后台线程中而不是主UI中发送您的请求,在调用之间使用Thread.Sleep
您的请求以合理的时间间隔进行。无论是对MessageBox.Show()
的任何调用,这都将继续滚动。
如果您需要以任何方式更改该线程的UI,您只需使用invocation methods。