2

これについてはたくさんの質問があることを私は知っています。それらを試しましたが、結果が得られません。

最初の実行でスレッドを作成しています。フォームを閉じようとすると、フォームが閉じますが、アプリケーション(スレッド)はまだ実行されています。

スレッドがどうなるかは気にしません。ユーザーがXボタンをクリックしたときにアプリケーション全体を閉じたいだけです。試しthread_name.Abort();ましたが何も起こりません。

4

4 に答える 4

8

コードがない場合、完全な答えは難しいです。

最も簡単な解決策は、スレッドのIsBackgroundプロパティを true に設定することだと思います。

ドキュメントから:

スレッドは、バックグラウンド スレッドまたはフォアグラウンド スレッドのいずれかです。バックグラウンド スレッドは、バックグラウンド スレッドがプロセスの終了を妨げないことを除いて、フォアグラウンド スレッドと同じです。

于 2013-02-20T13:21:43.797 に答える
2

スレッドを作成するときにThread.IsBackgroundをに設定してみてください。true

バックグラウンド スレッドは、実行中のプロセスの終了を停止しません。

于 2013-02-20T13:22:04.047 に答える
1

スレッドをフォアグラウンド スレッドとして宣言すると、[X] をクリックしてもスレッドがまだ生きているため、アプリケーションは停止しません。バックグラウンドスレッドとして設定する必要があります。

Thread.IsBackground = true;

ここを読んでください。

于 2013-02-20T13:23:17.280 に答える
0

ご質問のとおりではありませんが、.NET 4.0 の Task Parallel Library は、かなり賢明な方法でキャンセルをサポートしています。あなたの状況では実行可能である場合とそうでない場合がありますが、詳細についてはこちらをご覧ください

http://msdn.microsoft.com/en-us/library/dd460717(v=vs.100).aspx

于 2013-02-20T13:34:08.453 に答える