Babybaer Geschrieben 22. November 2002 Teilen Geschrieben 22. November 2002 Hi ich bins mal wieder. Da gibts auch schon wieder ein neues Problem für mich. Das wie folgt aussieht: Thema Thread erstellen und zerstören. Also ich habe ein Thread-Klasse die ein Dialog mit DoModal() erzeugt. soweit alles supi. Jetzt will ich aber meine Thread Zerstören und hier blick ich es nicht mehr. Wie sieht so was aus. Beispiel wäre schön. Danke mal wieder. :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 22. November 2002 Teilen Geschrieben 22. November 2002 Man kann TerminateThread verwenden, um einen Thread zu beenden. Allerdings ist das eine gefährliche Sache, weil z.B. auf dem Heap allokierter Speicher, CritSecs und geladene DLLs nicht freigegeben werden. Du solltest also zuerst den Thread "sanft" beenden, z.B. indem Du ein Flag setzt, das der Thread regelmäßig prüft, und abwarten, ob er sich selbst beendet. Erst wenn das nicht klappt, solltest Du TerminateThread in Erwägung ziehen. Das Ganze könnte etwa so aussehen: DWORD dwThreadId; HANDLE hThread = CreateThread( NULL, 0, ThreadProc, (void*) pParam, 0, &dwThreadId ); // ...irgendwas tun // Jetzt soll der Thread beendet werden, Flag setzen fStopThread = TRUE; // Dem Thread Zeit geben, sich zu beenden.Hier: 5 Sekunden if( WAIT_OBJECT_0 != WaitForSingleObject( hThread, 5000 ) ) { // Thread hat nicht terminiert, dann auf die harte Tour TerminateThread( hThread, 0 ); } CloseHandle( hThread ); [/CODE] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybaer Geschrieben 22. November 2002 Autor Teilen Geschrieben 22. November 2002 Danke Danke Danke werde es sofort mal testen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rain Geschrieben 25. Januar 2003 Teilen Geschrieben 25. Januar 2003 Hy Meine frage passt da auch zu dieser Materie. Diese Thread c++ Klasse ist ja beim Standard c++ nicht mit dabei.(oder?) Wo kann ich mir solch eine Klasse downloaden und welche sind besonders leicht zu handhaben? Besten Dank Rain Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SgtBadAzz Geschrieben 25. Januar 2003 Teilen Geschrieben 25. Januar 2003 Originally posted by Rain Hy Meine frage passt da auch zu dieser Materie. Diese Thread c++ Klasse ist ja beim Standard c++ nicht mit dabei.(oder?) Wo kann ich mir solch eine Klasse downloaden und welche sind besonders leicht zu handhaben? Besten Dank Rain Threads sind ein Service der von dem jeweiligen OS angeboten wird. Wenn du dir einfach eine Bibliothek besorgst dann bringt das wenig, wenn das von deinem OS in dieser Form nicht unterstuezt wird. So bietet z.B. die MFC eine entsprechende Kapselung von Threads an, was aber unter UNIX nicht funktioniert. Im schlimmsten Fall kannst du eben ganz normale API-Funktionen verwenden um mit Threads zu arbeiten. :cool: Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rain Geschrieben 25. Januar 2003 Teilen Geschrieben 25. Januar 2003 Und welche Bibliotheken können für linux verwendet werden? Besten dank rain Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SgtBadAzz Geschrieben 26. Januar 2003 Teilen Geschrieben 26. Januar 2003 Originally posted by Rain Und welche Bibliotheken können für linux verwendet werden? Besten dank rain Ich denke die QT-Version fuer LINUX von TrollTech duerfte das entsprechend abbilden. Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 26. Januar 2003 Teilen Geschrieben 26. Januar 2003 Originally posted by Rain Und welche Bibliotheken können für linux verwendet werden?Hier gibt es eine Übersicht: http://linas.org/linux/threads-faq.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.