私は_.exe
_を実行するこのコードを持っています
_string openEXE = @"C:\Users\marek\Documents\Visual Studio 2012\Projects\tours\tours\bin\Debug\netpokl.exe";
Process b = Process.Start(openEXE);
b.EnableRaisingEvents = true;
b.Exited += (netpokl_Closed);
_
そして、それが閉じると、メソッドnetpokl_Closedを呼び出します。問題は、私が_insert into netpokl_Closed command
_ --this.Close()
この例外が発生したときです:_Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on
_
どうすれば修正できますか?お手数をおかけしますが、よろしくお願いいたします。
作成されたスレッド以外のスレッドからフォームを閉じようとしているため、例外が発生します。これは許可されていません。
このようにします
this.Invoke((MethodInvoker) delegate
{
// close the form on the forms thread
this.Close();
});
コントロールの作成スレッド以外のスレッドがそのコントロールのメソッドまたはプロパティの1つにアクセスしようとすると、予期しない結果が生じることがよくあります。一般的な無効なスレッドアクティビティは、コントロールのHandleプロパティにアクセスする間違ったスレッドの呼び出しです。
アプリケーションのデバッグ中に、コントロールのHandleプロパティにアクセスする間違ったスレッドでの呼び出しをキャッチするかどうかを示す値を取得または設定します。
見て