1

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

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

1 回答 1

1

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

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

因为进程 ID 是全局的,所以可以安全地假设两个进程都可以正确使用该 ID。

然后,您可以将此数字附加到诸如“MyProcessEvent”之类的字符串上,例如“MyProcessEvent6345615”。EventWaitHandle然后使用该字符串在两个进程中打开命名。

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

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

于 2013-05-17T17:59:32.327 回答