boost::thread starten und nicht auf Rückkehr warten
-
Hallo,
bin momentan am Probieren, wie man einen Thread starten kann, ohne auf dessen Rückkehr zu warten. Das heißt er soll halt einfach im Hintergrund laufen, bis er entweder fertig ist, oder unterbrochen wird.Mittels
boost::thread* tThread = new boost::thread(&MyClass::ToDo, this); tThread->join();ist meine Anwendung bis zur Rückkehr des Threads blockiert. Das soll aber so nicht sein.
Wie könnte man dies denn mit der boost Library bewerkstelligen?
Gruß, sig.
-
Den
join-Aufruf weglassen
-
einfach einen weiter thread erstellen...
-
Etwas OT, aber warum new? Das ist unnötig!
-
mit new kennzeichnet man das man früher mal Java-Programmierer war
-
new() schrieb:
mit new kennzeichnet man das man früher mal Java-Programmierer war

-
sigmatix schrieb:
Hallo,
bin momentan am Probieren, wie man einen Thread starten kann, ohne auf dessen Rückkehr zu warten. Das heißt er soll halt einfach im Hintergrund laufen, bis er entweder fertig ist, oder unterbrochen wird.Mittels
boost::thread* tThread = new boost::thread(&MyClass::ToDo, this); tThread->join();ist meine Anwendung bis zur Rückkehr des Threads blockiert. Das soll aber so nicht sein.
Wie könnte man dies denn mit der boost Library bewerkstelligen?
Gruß, sig.Du sagst doch selber das du mit join() auf eine Rückkehr warten willst. Lass das join weg. Übrigens kannst du in C++ Objekte auch auf dem Stack anlegen. Dann ersparst du dir auch das delete.
boost::thread tThread(&MyClass::ToDo, this); tThread.join(); // nur nötig, wenn man auf das Ende warten will.