프로그래밍/.Net
WaitHandles 사용
강태공97
2014. 1. 17. 21:19
// 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가 리턴된다.