コードのデバッグを 1 週間行った後、Windows フォーム ベースの GUI の動作がおかしいのは、フォームを次のように実行していたことが原因であることがわかりました。
Form1 myGui = new Form1();
Application.Run(myGui);
コードを次のように変更します。
Application.Run(new Form1());
どうやらトリックをした。
私が抱えていた問題は、何らかの理由で、最初の方法でフォームを作成し、Invoke/BeginInvoke パターンで呼び出しをマーシャリングしようとすると、呼び出しが解決されず、Invoke の場合に他のスレッドがハングしたままになることでした。または、単に BeginInvoke で関数を呼び出さないでください。
なぜこれが起こるのか誰か説明できますか?
さらに、Mono と Unity3D でアプリケーションを実行しています。
みんな、ありがとう