2016-01-25 71 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