ワーカー スレッドにオブジェクトがあり、実行を停止するように指示できます。bool または AutoResetEvent を使用してこれを実装できます。
ブール値:
private volatile bool _isRunning;
public void Run() {
while (_isRunning)
{
doWork();
Thread.Sleep(1000);
}
}
自動リセットイベント:
private AutoResetEvent _stop;
public void Run() {
do {
doWork();
} while (!_stop.WaitOne(1000));
}
Stop()
メソッドは false に設定される_isRunning
か、 を呼び出します_stop.Set()
。
それとは別に、AutoResetEvent を使用したソリューションは少し速く停止する可能性がありますが、これらの方法に違いはありますか? 一方が他方よりも「優れている」か?