1

コードのデバッグを 1 週間行った後、Windows フォーム ベースの GUI の動作がおかしいのは、フォームを次のように実行していたことが原因であることがわかりました。

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

コードを次のように変更します。

Application.Run(new Form1());

どうやらトリックをした。

私が抱えていた問題は、何らかの理由で、最初の方法でフォームを作成し、Invoke/BeginInvoke パターンで呼び出しをマーシャリングしようとすると、呼び出しが解決されず、Invoke の場合に他のスレッドがハングしたままになることでした。または、単に BeginInvoke で関数を呼び出さないでください。

なぜこれが起こるのか誰か説明できますか?

さらに、Mono と Unity3D でアプリケーションを実行しています。

みんな、ありがとう

4

1 に答える 1

0

私は、フォーム参照がグローバルに管理されるか、Main メソッド内または Main メソッドを介して Application.Run への静的呼び出し中に使用可能なクラスにスコープされる、Windows および Mono の下で多くのシナリオを扱ってきました。これは、スコーピングの問題以外には疑わしいように思えます。あなたが言及したコードだけでミニマリストのアプリを試しましたか? Mono で Unity3D を使用しても、同じ結果を再現できませんでした。

于 2013-05-22T18:48:43.430 に答える