2010-04-08 85 views
0

我有一個WPF應用程序和一個Windows服務作爲看門狗。如何檢查應用程序是否停止或從窗口服務工作

我想檢查我的窗口應用程序是否暫停或正常工作。如果它暫停,我想重新啓動應用程序。

我看到Process.responding屬性,但它不在我的服務中工作。

任何想法或其他解決方案。

Process[] myProcesses; 
     myProcesses = Process.GetProcessesByName(ApplicationName); 
     if (myProcesses.Length > 0) 
     { 
      foreach (Process proc in myProcesses) 
      { 
       _Logger.LogMessage("Check responding"); 
       if (!proc.Responding) 

回答

0

一般而言,您無法檢測程序是否已暫停(查找「停機問題」)。

如果你有一個特定的技術定義「停止」你的情況,那麼它可能是可能的,但細節就是一切。

考慮一個GUI然後等待網絡請求,所以停止處理輸入...但是當請求完成時它將開始響應。在這種情況下,它已經停止了一個定義,但沒有其他意義。

+0

我有一個想法給予足夠的時間讓應用程序響應。例如,我重試檢查響應狀態4分鐘,如果仍然沒有響應,我想重新啓動它。 – malik 2010-04-08 11:43:27