4

ワーカー スレッドで Windows APIを使用しSetWindowHookEx()、OS 通知を受信するために、.NET を使用して Application Message Pump を実行しApplication.Run()ました。

ここで、メッセージ ポンプを停止してワーカー スレッドを終了したいのですが、スレッドを終了する良い方法がありません。

または、メソッドを使用Thread.Abort()してスレッドを終了していますが、これはスレッドを正常に終了するための推奨される方法ではありません。

ワーカー スレッドが自動的に戻って終了するように、UI スレッドまたはメイン フォームからメッセージ ポンプを適切に閉じる方法を誰か提案してもらえますか?

4

3 に答える 3

4

パラメーターなしを使用するのではなく、Application.Runを受け入れるオーバーロードを使用しますApplicationContext

アプリケーション コンテキストにはExitThread、メッセージ ループを適切に終了させるメソッドがあります。

于 2013-02-08T17:31:51.963 に答える
0

別のスレッドから Application.Exit を呼び出さないのはなぜですか?

于 2013-05-10T10:00:46.470 に答える
-2

Thread.Abort() がワーカー スレッドで発生させる ThreadAbortException を適切に処理すれば、スレッドを中止することについて不自然なことは何もありません。

于 2013-02-08T17:27:44.330 に答える