// for Multi wait Object
WaitHandle[] hObj = new WaitHandle[2];
hObj[0] = _hDestroyGrab;
hObj[1] = _hTrigGrabProc;

_hTrigGrabStop.Reset(); // Reset: non-signaled set.. waitone에서 기다리겠다는 의미.
_hIdleGrabProc.Set(); // Set : Grab Proc는 Set 해준다.

int nObjDone = WaitHandle.WaitAny(hObj); // 2개중 어느 하나라도 끝난게 있다면 처리한다.

switch (nObjDone)
{
case 0: // Destory Event set.
return;
case 1: // TrigGrabProc Event set.
break;
default: // 그외 event set된 경우, continue......
continue;
}

 

요렇게 WaitAny로 먼저 Set된놈에 대한 처리가 가능하다.

WaitAll은 모든 event가 set되어야 true가 리턴된다.

 

+ Recent posts