2009-12-17 18 views

回答

1

一個可能性是使用看門狗定時器: 在你的線程中你重置定時器(例如,每次你進入循環)。 當計時器的時間間隔已過期,你知道線程可能不工作了,這樣你就可以重新啓動該服務或什麼都...

0

一個更好的辦法可能是趕上線程異常和記錄它們。或者你可以捕捉異常,記錄它,然後停止服務。通過這種方式,您可以控制服務停止,並且還可以對生成的錯誤有所瞭解。

0

撥打電話停止服務:

 
     bool StopService(string svr_name) 
     { 
      bool ret = false; 
      if (svr_name.Length > 0) 
      { 
       try 
       { 
        ServiceController sc = new ServiceController(svr_name); 

        if (sc.Status == ServiceControllerStatus.Stopped) 
        { 
         return true; 
        } 
        sc.Stop(); 
       } 
       catch (Exception) 
       { 
        return false; 
       } 
      } 
      return ret; 
     }