Отправить событие в один процесс

Я в настоящее время использую EventWaitHandle инициировать чистое завершение собственного процесса, у которого нет окна из приложения Windows Forms. Когда у меня несколько одновременно запущенных процессов, установка события остановит все из них. Есть ли способ отправить событие одному выбранному процессу? Я сохраняю Process переменная для каждого из них.

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

1 ответ

Это больше похоже на то, что вы хотите именованный дескриптор события для каждого процесса.

Вы могли бы использовать Process.Id чтобы получить уникальный идентификатор для каждого процесса и использовать его для генерации уникальной строки для каждого процесса.

Поскольку идентификатор процесса является глобальным, можно с уверенностью предположить, что идентификатор может использоваться обоими процессами правильно.

Затем вы можете добавить этот номер к некоторой строке, например, "MyProcessEvent", чтобы получить, скажем, "MyProcessEvent6345615". Затем используйте эту строку, чтобы открыть EventWaitHandle в обоих процессах.

Затем ваш процесс контроллера может сигнализировать любому из процессов, которые он начал, используя это имя.

( Процесс находит свой собственный идентификатор через Process.GetCurrentProcess()).

Другие вопросы по тегам