我想在2种不同类型上使用WaitForMultipleObjects:
我不知道如何(以适当的方式)将“ 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。所有答案都很好。
非常感谢!!!
您可以将WaitHandle子类化,后者代表Process.Handle
并使用其实例WaitHandle
进行等待。
public class ProcessWaitHandle : WaitHandle
{
private readonly Process process;
public ProcessWaitHandle(Process process)
{
this.process = process;
this.SafeWaitHandle = new SafeWaitHandle(process.Handle, false);
}
}
var waitHandles = new WaitHandle[2]
{
waitHandleExit,
new ProcessWaitHandle(process)
};
int waitResult = WaitHandle.WaitAny(waitHandles, timeOut);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句