두 번째 스레드가 루프로 GetMessage()
을 호출하는 응용 프로그램이 있습니다. 어떤 시점에서 첫 번째 스레드는 사용자가 응용 프로그램을 종료하고 종료해야하는 두 번째 스레드에 알리고 있음을 알게됩니다. 두 번째 스레드가 GetMessage()
에 고정되어 있으므로 프로그램이 종료되지 않습니다. 타임 아웃이있는 메시지를 기다리는 방법이 있습니까? 다른 아이디어도 열려 있습니다.타임 아웃이있는 GetMessage
는 편집 :
while (!m_quit && GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
첫 번째 스레드가 true로 m_quit
을 설정 (추가 설명)는
두 번째 스레드가 코드의 조각을 실행합니다.
대기 ... 어떤 스레드가 'GetMessage()'에서 대기중인 루프에 있습니까? 첫 번째 스레드, 두 번째 스레드 또는 둘 다? – templatetypedef
두 번째 스레드는 GetMessage 루프를 실행합니다. 일부 코드를 게시해야합니까? – qdii
코드가 항상 도움이됩니다. 귀하의 질문에 두 스레드가 차단 된 것처럼 보이기 때문에 나는 혼란스러워합니다. "지금 종료해야합니까?"라는 맞춤 메시지를 보낼 수는 없습니까? – templatetypedef