1.
HANDLE hEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);::PostThreadMessage(hThread, WMU_WORK, (WPARAM)new Param(), (LPARAM)hEvent);
::WaitForSingleObject(hEvent, 1000);
2.
volatile int state = 0;
HANDLE hThread = (HANDLE)_beginthreadex(NULL, ThreadFunc, (void*)state, 0, 0, 0, 0);
::PostThreadMessage(hThread, WMU_WORK, (WPARAM)new Param(), (LPARAM)hEvent);
while (state != 0) { ::Sleep(1); }
스핀락 형태로 웨이팅은 점 CPU타임 낭비가 있어서 -_- 되도록 OS가 지원해주는 기능을 사용하면 락 풀리기 전까진 알아서 프로세스 스케줄링에서 빼주니까 더 좋지비.