如果我采用 C# 表单 (WinForms) 并使其不可见:
MyForm.Visible = false;
Run Code Online (Sandbox Code Playgroud)
然后在我创建的一个单独的线程中;执行以下代码:
this.Invoke(new MethodInvoker(delegate()
{
ProgressBar2.Visible = false;
}));
Run Code Online (Sandbox Code Playgroud)
我的申请将被冻结而不会继续。如果 MyForm 可见,则线程中的上述代码运行良好。如果它不可见,则代码在读取“this.Invoke(new MethodInvoker(delegate()”)行后立即停止运行。它不会出错,它只是坐在那里(我设置了一个断点来观察它,它就位于“this.Invoke(new MethodInvoker(delegate()”)之后。
知道为什么当我的表单隐藏时这不会执行吗?我该如何解决这个问题?我正在使用“this.Invoke(new MethodInvoker(delegate()”),因为我需要能够将 MainForm 上的进度栏控件设置为可见(并且我必须在主 UI 线程之外的另一个线程上执行此操作)并且我想要无论表单是否可见,都可以执行此操作。
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |