B
Du missverstehst das Ganze. Das Problem ist, dass SendMesageTimeOut auf den Empfänger wartet. Grundsätzlich die Frage: Warum sollte der Workerthread auf irgendwas warten was er vermeiden kann?
Hab das schon verstanden, das in der Threadloop der thread hier:
SendMessageTimout(......,500); //<-- WARTET
wenn die operation in der messagefunktion des fesnter nur 10ms geht, dann muss der thread ja nur 10ms warten, wenn die operation da >=500ms dauert, dann warte der thread hier max. 500ms so ist er richtig oder?
Aber was passiert in der messagefunktion > 500ms braucht, wird dann aprupt da abgebrochen? sorry für die fragen.. aber das interessiert mich jetzt :schland:
P.S.: was ist mit der
SendMessageCallback funktion
ich köntne doch damit ein message schicken.. und ein flag im trhead setzen der thread würde weiter arbeiten, allerdings wir nun erst nur wieder ne nachricht schicken wenn das falg resetet wird, undd as köntne iuch mit der SendAsyncProc tun? was meisnt martin.. oder spinn ich jetzt ganz??? :p :p
void CALLBACK Reset(HWND hwnd, UINT uMsg, DWORD dwData, LRESULT lResult){
boReady=true;
}
threadloop(){
if(boReady){
::SendMessageCallback(hWnd,WM_USER+100,0,0L,Reset,0);
boReady=false;
}
}