016
12.08.2003, 12:18 Uhr
~Holger
Gast
|
Also , wenn ich auch mal meinen Senf dazu geben darf...
Das Hantieren mit vielen Flags führt in Multithread-Programmen früher oder später immer zu Problemen. Ich weiß im auch nicht genau, warum dein Code nicht ohne Message-Pump (=>AfxMessageBox macht auch sowas) geht. Was du aber machen kannst ist:
Irgendwo wird in deinem Code ein "CreateThread()" aufgerufen. Diese Funktion liefert ein HANDLE zurück. Dieses HANDLE stellt ein Synchronisationsobjekt dar, auf das man mit WaitForSingleObject() warten kann. Dein OnButtonAbbrechen() müsste also so ähnlich aussehen:
void KameraMessungDlg::OnButtonAbbrechen(){ messflag=1; endflag=2;; livepicsFlag=0;
WaitForSingleObject(hThread, dwTimeout);
//hThread ist das HANDLE von CreateThread, dwTimeout bricht das Warten irgendwann ab falls was schiefgeht, so daß das Prog immer noch zum Ende kommt EndDialog(endflag); } |