Thread.Suspend()
ご存知のように、メソッドは廃止されました。ボタンクリックイベントが発生したらすぐにスレッドを一時停止したい。私はThread.Suspend()を使用しましたが、これは完璧に機能しますが、Thread.Suspend()メソッドを使用することは、タスクを一時停止するのに適したメソッドではないことを誰もが示唆しています。フラグを使用してタスクを一時停止しましたが、ボタンクリックイベントが発生するたびに、タスクを終了するのを待つ必要があります。Thread.IsAliveフラグを使用してスレッドが終了するのを待ちましたが、このメソッドはフォームをフリーズします。
void ButtonClickEvent(object sender, ButtonClickEventArgs e)
{
TheadExitFlag = false;
if(MyThread != null)
{
while(MyThread.IsAlive);
//MyThread.Suspend();
}
}
void MyTask(void)
{
while(TheadExitFlag)
{
// some process
Thread.Sleep(5000);
}
}
スレッドをすぐに中断するにはどうすればよいですか?