C# 将事件发送到单个进程

C# 将事件发送到单个进程,c#,cross-process,event-wait-handle,C#,Cross Process,Event Wait Handle,我目前正在使用EventWaitHandle触发本机进程的完全关闭,该进程没有来自Windows窗体应用程序的窗口。当我同时运行多个进程时,设置事件将停止所有进程。是否有任何方法将事件发送到单个选定进程?我为它们中的每一个保留一个过程变量 EventWaitHandle Event = new EventWaitHandle(false, EventResetMode.ManualReset, "EventName"); Event.Set(); 听起来更像是每个进程都需要一个命名事件句柄 您

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

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

听起来更像是每个进程都需要一个命名事件句柄

您可以使用为每个进程获取唯一的ID,并使用它为每个进程生成唯一的字符串

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

然后,您可以将这个数字附加到一些字符串上,比如“MyProcessEvent”,给出“MyProcessEvent6345615”。然后使用该字符串在两个进程中打开命名的
EventWaitHandle

然后,您的控制器进程可以向它使用该名称启动的任何进程发送信号


()。

听起来更像是每个进程都需要一个命名事件句柄

您可以使用为每个进程获取唯一的ID,并使用它为每个进程生成唯一的字符串

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

然后,您可以将这个数字附加到一些字符串上,比如“MyProcessEvent”,给出“MyProcessEvent6345615”。然后使用该字符串在两个进程中打开命名的
EventWaitHandle

然后,您的控制器进程可以向它使用该名称启动的任何进程发送信号


()。

我无法更改本机进程侦听的事件,因此您无法以任何方式更改客户端软件?知道这一点很重要。:)在这种情况下,您无能为力。我有源代码访问权限,但我不确定其他哪些工具使用此事件我无法更改本机进程侦听的事件您无法以任何方式更改客户端软件吗?知道这一点很重要。:)在这种情况下,您无能为力。我确实可以访问源代码,但我不确定还有哪些其他工具使用此事件