我的 Windows 服务正在 OnStart() 方法中创建 1 个线程。线程代码包含 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 循环条件为真,但要打破循环,我正在使用 if() 指令,但仍然无法停止服务。
有谁知道,为什么会这样?我怎么解决这个问题?