1. ホーム
  2. c#

実行中のスレッドをすべて終了させる方法は?

2023-10-09 22:28:22

質問

次のコードは、アプリケーションを終了させません。どうすればアプリケーションを終了させ、実行中のスレッドをすべて終了させることができるでしょうか。

foreach (Form form in Application.OpenForms)
{
    form.Close();
}
Application.Exit();

どのように解決するのですか?

あなたのコードではスレッドの使用が示されていませんが、その中にスレッドがあると仮定してみましょう。すべてのスレッドを閉じるには、それらを起動する前にすべてバックグラウンド スレッドに設定し、アプリケーションが終了したときに自動的に閉じられるようにします。

Thread myThread = new Thread(...);
myThread.IsBackground = true; // <-- Set your thread to background
myThread.Start(...);

microsoftからの記事、HOWTO: Stop Multiple Threads"です。 http://msdn.microsoft.com/en-us/library/aa457093.aspx