Socket (CAsyncSocket) in Thread (CWinThread)
-
Hallo
Habe eine grosses Problem.
Und zwar starte ich in meiner Applikation ein Thread und in diesem
erstelle ich ein Objekt von CAsyncSocket und setze dieses auf Listen().Jetzt wenn ich das Programm schliesse, will ich zuerst das Socket schliessen, dann das Thread und anschliessend das ganze Programm.
So sieht es bis jetzt aus:
void CChatDlg::OnCancel() { // thread schliessen delete m_pServerThread; // Programm beenden PostQuitMessage(0); }Im Destruktor vom Thread "versuche" ich noch das Socket zu schliessen.
Doch wenn ich das Programm ausführe kommt beim Debuggen ein Fehler in Sockcore.cpp Linie 541:
ASSERT(CAsyncSocket::LookupHandle(hSocket, FALSE) != NULL);Diese Meldung kommt immer! Egal ob ich versuche das Socket zu schliessen oder nicht.
Wie muss ich das lösen?
Vielen Dank.
-
Ich weis zwar nicht, ob das dein Problem auslöst, aber warum benutzt du zum Beenden PostQuitMessage(0);?
Rufe an der Stelle doch einfach die Eltern-Methode auf,
alsoCDialog::OnCancel();
-
Hallo
Vielen Dank für die Antwort.
Ok werde ich versuche mit der Parent Funktion zum schliessen.
Aber es liegt nicht an diesem Befehl, weil beim debuggen er bei der delete Funktion abbricht.