我的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()指令来停止循环时,仍无法停止服务。
有人知道原因吗?我该如何解决这个问题?