나는 while 루프를 제어 (일시 중지 및 재개)하기 위해 수동 재설정 이벤트 이 있습니다. 따라서 루프에서 이벤트 신호 상태를 계속 확인해야합니다.while 루프에서 WaitForSingleObject를 계속 호출하는 것이 좋습니다.
void my_loop()
{
while(is_ok)
{
// Check whether event is in signaled state
dwWaitResult = WaitForSingleObject(
ghEvent, // event handle
INFINITE); // indefinite wait
switch (dwWaitResult)
{
// Event object was signaled
case WAIT_OBJECT_0:
printf("my_loop is working");
break;
// An error occurred
default:
printf("my_loop is halted");
break;
}
}
}
이 좋은 방법입니까? 지속적으로 WaitForSingleObject
(CPU, 메모리 등) 문제가 발생합니까?
이 경우 이벤트 상태를 확인하는 더 나은 방법이 있습니까?
예, 다른 함수는 ResetEvent 및 SetEvent를 호출하여 이벤트 상태를 전환 할 수 있으므로 해당 루프가 일시 중지되었다가 다시 시작됩니다. 내 루프가하는 일에 대해 걱정하지 마십시오. WaitForSingleObject를 호출하면 계속해서 문제 (CPU, 메모리, ...)가 발생하는지 묻습니다. ?? 아니면 이벤트 상태를 확인하는 더 좋은 방법이 있습니까? – onmyway133
다음과 같이 : _ 루프에는 WaitForSingleObjectin을 사용하여 문제가 없습니다. 그러나 [중요 섹션 개체] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682530%28v=vs.85%29.aspx) 또는 [동기화 개체] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686364%28v=vs.85%29.aspx) 일반적으로. – Arno
루프 사이클 수를 외부 제어 할 생각이 듭니다. 이러한 접근법에 대해서는 [세마포어 개체] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms685129%28v=vs.85%29.aspx)를 조사해야합니다. – Arno