将事件发送到单个进程



我目前正在使用EventWaitHandle来触发一个没有Windows窗体应用程序窗口的本机进程的干净关机。当我有多个这些进程同时运行时,设置事件将停止所有这些进程。是否有任何方法将事件发送到单个选定的流程?我为它们每个保留一个Process变量。

EventWaitHandle Event = new EventWaitHandle(false, EventResetMode.ManualReset, "EventName");
Event.Set();

听起来更像是您希望每个进程都有一个命名的事件句柄。

您可以使用Process.Id为每个进程获得一个唯一的ID,并使用它为每个进程生成一个唯一的字符串。

由于进程ID是全局的,因此可以安全地假设该ID可以被两个进程正确使用。

你可以把这个数字附加到像"MyProcessEvent"这样的字符串上,比如"myprocesseven6345615"。然后使用该字符串在两个进程中打开命名的EventWaitHandle

然后你的控制器进程可以用这个名字通知它启动的任何进程。

(进程通过Process.GetCurrentProcess()找到自己的ID)。

相关内容

  • 没有找到相关文章

最新更新