Ho un'applicazione che secondo thread chiama GetMessage()
in un ciclo. Ad un certo punto il primo thread si rende conto che l'utente vuole uscire dall'applicazione e notifica il secondo thread che deve terminare. Poiché il secondo thread è bloccato su GetMessage()
, il programma non si chiude mai. C'è un modo per attendere i messaggi con un timeout? Sono aperto anche ad altre idee.GetMessage con un timeout
EDIT: (ulteriori spiegazioni)
Il secondo filo corre che frammento di codice:
while (!m_quit && GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Il primo thread imposta m_quit
su true.
Attendere ... quale thread è nel ciclo in attesa di 'GetMessage()'? Il primo thread, il secondo thread o entrambi? – templatetypedef
Il secondo thread esegue il ciclo GetMessage. Dovrei pubblicare del codice? – qdii
Il codice aiuta sempre. Sono solo confuso perché la tua domanda fa sembrare che entrambi i thread siano bloccati. Non puoi semplicemente inviare un messaggio personalizzato che dice "devi chiudere adesso?" – templatetypedef