例如,如果其中一个子窗体被某个同步请求阻止,它会冻结整个容器(MDI Parent),而其他打开的窗口也会变为可访问。
一般情况下,是否可以在.net windows中构建app域中有多个GUI线程?
在visual studio中,默认的winform应用程序具有 STA (单线程单元)设置。 从理论上讲,我理解 MTA 在这里意味着什么,但它的实际用途是什么。
在我的用例中,个别mdi孩子是由各种团队开发的,他们可能不会以异步方式推迟阻塞调用,所以我只是想知道它是否可能有多个UI线程,虽然这是不可取的 - 我完全同意。
编辑#1:
我可以把谷歌浏览器视为一个 单个选项卡是a的示例 单独的过程可能与a 专用的GUI线程?是的东西 像这样可以在dot.net应用程序中使用。
答案 0 :(得分:2)
不要试图强制多个线程进入GUI层,而是让GUI层将其所有工作推迟到后台线程。这样,如果某个后台线程变得无响应,整个GUI(包括反映无响应后台线程的MDI子项)都会响应。
答案 1 :(得分:0)
NO。您不能在.NET中使用多个UI线程。 您最好使用后台线程来处理那里耗时的操作。 如果您需要在操作运行时阻止窗口,最好创建一些解决方法。