내가 (윈도우 OS의 경우) 다음과 같은 C++ 코드가있는 경우 :와 WaitForMultipleObjects
HANDLE hEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL);
HANDLE hMutex = ::CreateMutex(NULL, FALSE, NULL);
HANDLE hHandles[] = {
hEvent,
hMutex
};
DWORD dwR = ::WaitForMultipleObjects(2, hHandles, FALSE, INFINITE) - WAIT_OBJECT_0;
//if dwR == 0, what state is hMutex in?
//Or, do I need to call ReleaseMutex(hMutex) in that case?
내가 뮤텍스에 대한이 상황을 처리하는 방법을 잘 모르겠어요 있습니다.
감사합니다. 그것이 내가 알아야 할 것이 었습니다. 그런데 WAIT_OBJECT_0에 대해서 말하기 전에 그것을 뺀 것입니다. – c00000fd
아, 네가 그랬어. 미안, 그 부분을 놓쳤다. –
당신처럼 무조건적으로 빼지 마십시오. 'WaitForMultipleObject()'는'WAIT_OBJECT_0'을 뽑아 내서는 안되는 다른 에러 코드를 반환 할 수 있습니다. 'WaitForMultipleObjects()'가'WAIT_OBJECT_0 + 0' 또는'WAIT_OBJECT_0 + 1'을 반환하면 빼기 만합니다. –