私の Windows サービスは、OnStart() メソッドで 1 つのスレッドを作成しています。thread のコードには 1 つの while ループが含まれており、次のようになります。
Thread mworker;
AutoResetEvent mStop = new AutoResetEvent(false);
protected override void OnStart(string[] args)
{
// TODO: Add code here to start your service.
mworker = new Thread(pwd_fetch);
mworker.IsBackground = false;
mworker.Start();
}
protected override void OnStop()
{
// TODO: Add code here to perform any tear-down necessary to stop your service.
mStop.Set();
mworker.Join();
}
private void pwd_fetch()
{
while(true)
{
//some other code
if (mStop.Set()==true)
break;
}
}
while ループ条件を true にしたいのですが、ループを中断するために if() 命令を使用していますが、サービスを停止できません。
なぜそうなのか、誰にもわかりますか?どうすればこの問題を解決できますか?