Problem mit Thread und Klasse
-
Hallo,
ich habe folgendes Problem: Ich habe eine Klasse. Mit einer Methode greife ich auf diese zu. Diese Methode soll dann einen Thread starten.
Der Code sieht folgendermaßen aus:#include <thread> void tthread() { //bla }; class Klasse { void erzeugen() { std::thread th(tthread); }; }; int main() { Klasse *Kla = new Klasse; Kla->erzeugen(); };Der Code wird bei der Ausführung mit einem Abbruch beendet.
Ich hoffe, ihr könnt mir helfen.Gruß
-
#include <thread> #include <iostream> void my_thread() { std::cout << "Hello, thread!" << std::endl; } class my_class_t { private: std::thread thread; my_class_t( my_class_t const & ); // not copyable public: my_class_t() : thread() {} ~my_class_t() { thread.join(); } void run() { thread = std::thread( my_thread ); } }; int main() { my_class_t my_class; my_class.run(); }
-
Fang doch mal die exception ab.
Vielleicht hast du aber auch einen Fehler in der Funktion.
-
Marthog schrieb:
Fang doch mal die exception ab.
Welche denn?
-
Danke, es funktioniert.
Gruß
-
Jetzt habe ich ein weiteres Problem: Wenn ich die Methode für den Thread nocheinmal aufrufe, dann bricht das Programm erneut ab.
Die main()-Funktion umgeschrieben, so wie ich es meine:
int main() { my_class_t my_class; while(true) { //5 Sekunden warten my_class.run(); } }Gibt es dafür auch eine Lösung?
Gruß