1

经过一周的代码调试后,我发现基于 Windows-Forms 的 GUI 行为异常的问题是因为我将表单运行为:

Form1 myGui = new Form1();
Application.Run(myGui);

将代码更改为:

Application.Run(new Form1());

显然成功了。

我遇到的问题是,由于某种原因,如果我以第一种方式创建表单并尝试使用 Invoke/BeginInvoke 模式编组调用,则该调用从未解决,在调用的情况下留下另一个线程挂起,或者干脆从不使用 BeginInvoke 调用该函数。

谁能解释为什么会这样?

此外,我在 Mono 和 Unity3D 上运行应用程序。

感谢大家

4

1 回答 1

0

我曾在 Windows 和 Mono 下处理过许多场景,其中表单引用要么在全局范围内进行管理,要么限定在在 Main 方法中或通过 Main 方法静态调用 Application.Run 期间可用的类。这听起来太可疑了,只能是范围界定问题。您是否尝试过仅包含您提到的代码的极简应用程序?我无法在 Mono 下使用 Unity3D 重现相同的结果。

于 2013-05-22T18:48:43.430 回答