// 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가 리턴된다.
'프로그래밍 > .Net' 카테고리의 다른 글
String.Format으로 할 수 있는 일들 (0) | 2014.01.17 |
---|---|
Tick Count 가져오기 (0) | 2014.01.17 |
Thread 동기화 및 AutoResetEvent, WaitHandles (0) | 2014.01.17 |
[C#] Internal 지정자 (0) | 2014.01.17 |
LoaderLock 관리 디버깅 도우미 문제 (0) | 2014.01.17 |