我是 C# 的新手。我有一个 Windows 服务。在这个服务中,我运行一个线程。我想在线程完成后立即停止服务。目前,我的代码是这样的:
while(true){
if(isThreadFinished){
MyService.Stop();
break;
}
}
它有效,但我觉得像这样使用 while(true) 是一种愚蠢的方式。所以,我想知道是否有其他方法可以实现我的要求。
我是 C# 的新手。我有一个 Windows 服务。在这个服务中,我运行一个线程。我想在线程完成后立即停止服务。目前,我的代码是这样的:
while(true){
if(isThreadFinished){
MyService.Stop();
break;
}
}
它有效,但我觉得像这样使用 while(true) 是一种愚蠢的方式。所以,我想知道是否有其他方法可以实现我的要求。
bool x=true;
while(x==true){
if(isThreadFinished){
x=false;
MyService.Stop();
break;
}
}
我不知道 C#,但通常你会有一个 API thread.join() 或类似的等待线程完成。
如果没有别的,你可以阻止同一个同步对象。
在 Java 中,还有 Object.wait() 和 Object.notify() 可以解决问题。
为什么不使用委托?您在官方 MSDN 网站上有一个示例和文档...
你只是在你的线程结束之前调用你的委托方法......
这更适合while循环......如果你的线程在很长一段时间内更优化......