Отправить событие в один процесс
Я в настоящее время использую EventWaitHandle
инициировать чистое завершение собственного процесса, у которого нет окна из приложения Windows Forms. Когда у меня несколько одновременно запущенных процессов, установка события остановит все из них. Есть ли способ отправить событие одному выбранному процессу? Я сохраняю Process
переменная для каждого из них.
EventWaitHandle Event = new EventWaitHandle(false, EventResetMode.ManualReset, "EventName");
Event.Set();
1 ответ
Это больше похоже на то, что вы хотите именованный дескриптор события для каждого процесса.
Вы могли бы использовать Process.Id
чтобы получить уникальный идентификатор для каждого процесса и использовать его для генерации уникальной строки для каждого процесса.
Поскольку идентификатор процесса является глобальным, можно с уверенностью предположить, что идентификатор может использоваться обоими процессами правильно.
Затем вы можете добавить этот номер к некоторой строке, например, "MyProcessEvent", чтобы получить, скажем, "MyProcessEvent6345615". Затем используйте эту строку, чтобы открыть EventWaitHandle
в обоих процессах.
Затем ваш процесс контроллера может сигнализировать любому из процессов, которые он начал, используя это имя.
( Процесс находит свой собственный идентификатор через Process.GetCurrentProcess()
).