замените EventWaitHandle.OpenExisting(mutexStr);
на EventWaitHandle.OpenExisting(mutexStr).WaitOne(-1,false);
, чтобы вы могли ждать события
РЕДАКТИРОВАТЬ:
Изменить: EventWaitHandle eventWaitHandle = new EventWaitHandle(true, EventResetMode.ManualReset, "SOMEGUID");
на
EventWaitHandle eventWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset, "SOMEGUID");
Вы должны вызвать eventWaitHandle.Set()
при запуске и eventWaitHandle.Reset()
при остановке в ProcessA
EDIT2:
Поскольку может произойти сбой processA, вы должны затруднить
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(procAName);
и проверьте, работает ли он.Если бы я знал, как именно вы будете использовать это, я мог бы предложить более подходящее решение.В этом случае вам не нужны мьютексы.