-1

我是 C# 的新手。我有一个 Windows 服务。在这个服务中,我运行一个线程。我想在线程完成后立即停止服务。目前,我的代码是这样的:

while(true){
     if(isThreadFinished){
          MyService.Stop();
          break;
     }
}

它有效,但我觉得像这样使用 while(true) 是一种愚蠢的方式。所以,我想知道是否有其他方法可以实现我的要求。

4

3 回答 3

1
bool x=true;
while(x==true){
 if(isThreadFinished){
      x=false;
      MyService.Stop();
      break;
 }
}
于 2013-08-14T09:48:41.043 回答
0

我不知道 C#,但通常你会有一个 API thread.join() 或类似的等待线程完成。

如果没有别的,你可以阻止同一个同步对象。

在 Java 中,还有 Object.wait() 和 Object.notify() 可以解决问题。

于 2013-08-14T09:43:09.287 回答
0

为什么不使用委托?您在官方 MSDN 网站上有一个示例和文档...

你只是在你的线程结束之前调用你的委托方法......

这更适合while循环......如果你的线程在很长一段时间内更优化......

于 2013-08-14T09:48:15.933 回答