2016-01-25 73 views
0

是否有可能以某種方式從「外部」通知正在運行的進程?c#通知正在運行的進程

我有一個C#程序,理論上永遠運行。我想通知它手動觸發某些操作。如果這個解決方案可以在Windows和Linux上(單聲道),那將是最好的。

編輯:

  1. 該解決方案應該沒有用戶界面
  2. 我的計劃是,作爲現在,網絡服務的一部分。在初始化時,創建了一個新的Theread,它使用Task類保持活着
+0

更多上下文技術信息請 – darkomen

+1

用戶可以點擊按鈕,另一個進程可能自己命名互斥(windows),網絡命令收到...你能更具體,不要害羞,告訴我們什麼正是你想要做的。 – Sinatr

+0

「一個程序」,控制檯應用程序? Windows服務? windows窗體?... –

回答

5

帶上您的永久運行進程並讓其提供其他進程可以調用的webservice。

您可以使用任何跨平臺Web服務框架(如WebApiServiceStack)通過HTTP調用來實現此目的。這甚至可以通過互聯網工作(如果機器可以互相訪問)。

有幾十種方法。例如,您也可以使用named pipes,或者將命令放入數據庫(其他進程必須定期查詢),或者 - 如果您足夠無所畏懼 - 寫/讀文件進行通信。有創意...

+0

所以,我只是編輯我的帖子。我認爲,如果有外部可訪問的網址,而其他網站只能在內部使用,可能會造成混淆。 – Leifb

+2

爲什麼?根據你想要實現的觸發器(我假設新的將是你所稱的「內部」的),你可以爲你的內部調用製作一個基本URL,比如「/ maintenance/triggers /」,並稱它們爲「/ maintenance /觸發/ 1 /開始「或類似的東西。 – Waescher

+0

聽起來其實很不錯。當我考慮拆分Web服務和我的「程序」時,命名管道也很有幫助。謝謝! – Leifb