これについてはたくさんの質問があることを私は知っています。それらを試しましたが、結果が得られません。
最初の実行でスレッドを作成しています。フォームを閉じようとすると、フォームが閉じますが、アプリケーション(スレッド)はまだ実行されています。
スレッドがどうなるかは気にしません。ユーザーがXボタンをクリックしたときにアプリケーション全体を閉じたいだけです。試しthread_name.Abort();
ましたが何も起こりません。
これについてはたくさんの質問があることを私は知っています。それらを試しましたが、結果が得られません。
最初の実行でスレッドを作成しています。フォームを閉じようとすると、フォームが閉じますが、アプリケーション(スレッド)はまだ実行されています。
スレッドがどうなるかは気にしません。ユーザーがXボタンをクリックしたときにアプリケーション全体を閉じたいだけです。試しthread_name.Abort();
ましたが何も起こりません。
コードがない場合、完全な答えは難しいです。
最も簡単な解決策は、スレッドのIsBackgroundプロパティを true に設定することだと思います。
ドキュメントから:
スレッドは、バックグラウンド スレッドまたはフォアグラウンド スレッドのいずれかです。バックグラウンド スレッドは、バックグラウンド スレッドがプロセスの終了を妨げないことを除いて、フォアグラウンド スレッドと同じです。
スレッドを作成するときにThread.IsBackgroundをに設定してみてください。true
バックグラウンド スレッドは、実行中のプロセスの終了を停止しません。
スレッドをフォアグラウンド スレッドとして宣言すると、[X] をクリックしてもスレッドがまだ生きているため、アプリケーションは停止しません。バックグラウンドスレッドとして設定する必要があります。
Thread.IsBackground = true;
ここを読んでください。
ご質問のとおりではありませんが、.NET 4.0 の Task Parallel Library は、かなり賢明な方法でキャンセルをサポートしています。あなたの状況では実行可能である場合とそうでない場合がありますが、詳細についてはこちらをご覧ください
http://msdn.microsoft.com/en-us/library/dd460717(v=vs.100).aspx