マルチスレッドで例外発生時、EndInvokeでアプリが落ちる
- 題名: マルチスレッドで例外発生時、EndInvokeでアプリが落ちる
- 著者: ぺんたごん
- 日時: 2011/08/11 11:10:30
- ID: 28872
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: マルチスレッドで例外発生時、EndInvokeでアプリが落ちる
- 著者: Azulean
- 日時: 2011/08/12 15:29:17
- ID: 28876
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: マルチスレッドで例外発生時、EndInvokeでアプリが落ちる
- 著者: ぺんたごん
- 日時: 2011/08/13 20:49:37
- ID: 28881
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: マルチスレッドで例外発生時、EndInvokeでアプリが落ちる
- 著者: Azulean
- 日時: 2011/08/13 21:18:07
- ID: 28883
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
OS:WinXP,Vista .NET:2.0(C#) こんにちは あるクラスDLL(.NET2.0/C#製)のメソッドを非同期で呼び出す処理を行っています。 以下のようにクラスインスタンスのメソッドを非同期デリゲートを使って呼びだしています。 SampleDelegate sampleDlgt = new SampleDelegate(smpl.TestRun); sampleDlgt.BeginInvoke(param, new AsyncCallback(CallbackMethod), sampleDlgt); またコールバックメソッドではEndInvokeを行うためのコードがあります。 private static void CallbackMethod(IAsyncResult ar) { SampleDelegate dlgt = ar.AsyncState as SampleDelegate; if (dlgt != null) { dlgt.EndInvoke(ar); } } ここで、非同期で呼び出した処理内で例外が発生した時、 すぐにコールバックメソッドが呼ばれるのですが、そのEndInvokeで メインスレッドとなっているアプリ自体が強制終了されてしまいます。 とりあえずスレッド側の例外をキャッチする方法を調べていますが、 それとEndInvokeでアプリ自体が落ちてしまうこととの関連性が 見つからないため行き詰っています… 何卒ご教示いただければ幸いです。 以上よろしくお願いします