Я хочу использовать WaitForMultipleObjects для двух разных типов:
- 'EventWaitHandle'
- 'Process.Handle' ==> intptr
Я не знаю, как преобразовать (подходящим образом) "process.Handle" в WaitHandle, чтобы работал следующий код:
var waitHandles = new WaitHandle[2];
waitHandles[0] = waitHandleExit;
// Next line is the offending one:
waitHandles[1] = new SafeWaitHandle(process.Handle, false);
int waitResult = WaitHandle.WaitAny(waitHandles, timeOut);
Я получаю сообщение об ошибке:
Error 1 Cannot implicitly convert type 'Microsoft.Win32.SafeHandles.SafeWaitHandle' to 'System.Threading.WaitHandle' ...
Кто-нибудь знает, как правильно дождаться процесса и EventWaitHandle?
Обновление... Причины моего выбора ответа.
Прежде всего спасибо всем: Jaroen, Slugart и Sriram. Все ответы очень понравились.
- Решение Jaroen по причине, которую я проигнорировал, не работало на моей машине. Мое событие "Exited" никогда не происходило (возможно, только при Disposed?).
- Решение Slugart сработало отлично, и я попробовал его, прежде чем написал ответ.
- Решение Sriram работало отлично, и я выбрал его, потому что я не создаю ложный EventWaitHandle и кажется более чистым в соответствии с моим видением.
Спасибо большое!!!