【发布时间】:2016-04-23 09:41:19
【问题描述】:
当我使用 ShowDialog() 显示表单时,它会阻止 UI 和代码,但我只需要阻止 UI 而不是代码。
letturalog can3 = new letturalog();
(new System.Threading.Thread(() => {
can3.ShowDialog();
})).Start();
此模式不会阻塞代码和用户界面。
所以我想知道你是否可以这样做
【问题讨论】:
-
如果你不想阻塞的代码在其他线程中,你已经做了。显示对话框只会阻塞调用它的线程。
-
是的,但我已经写了 34.000 行代码.. 1 个 showdialog 不可能全部更改...
-
ShowDialog() 的工作原理是禁用应用程序中的所有窗口,然后在循环中调用 DoEvents() 直到分配 DialogResult 属性,然后重新启用所有窗口。所以你得到相同的结果,减去“阻止代码”,使用 Show() 并禁用所有窗口。
标签: c# .net winforms visual-studio