2010-05-28 41 views
1

我有兩個Windows服務,我們將調用X和Y. X處理我的應用程序的一般功能,並且Y存在以保持X最新。它通過檢查更新到十做到這一點。如果他們的存在,它的下載它們,關閉X,在新的文件的副本,並重新啓動X.編寫相互更新的Windows服務的正確方法是什麼?

不過,我想y以做同樣的事情爲X但我擔心的是,每種服務都有可能關閉對方,這意味着他們永遠不會重新啓動。

我能想到的三種解決方案:

  1. 保持第三的服務,Z,其 從不更新,即只檢查 如果超過一分鐘的每個服務已被關閉 ,如果所以, 重新啓動它們。這不會是一個 壞東西,無論如何,但它 似乎是我想要 能夠更新,其中 再次引入原始問題, 。
  2. 維護註冊表中的鎖定, ,使X在執行更新之前檢查Y是否已更新 ,反之亦然 。
  3. 讓每個服務在其OnStop方法中啓動其他服務。不過,這看起來有點不妥。

什麼是解決這個問題的妥善解決?

回答

1

我結束了使用System.Threading.Mutex。這兩種服務將始終運行在同一臺機器上,所以這是一個超級簡單的解決方案。

相關問題