Ich habe einen Boost-Thread erstellt mit: boost :: thread thrd (& connectionThread); wo connectionThread eine einfache Void-Funktion ist. Dies funktioniert gut, aber wenn ich versuche, es für ein paar Sekunden, zum Beispiel warten zu machen mit:C++ Einen Boost-Thread 1 Sekunde warten lassen
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec += 1;
boost::thread::sleep(xt); // Sleep for 1 second
Das Programm stürzt an der xtime_get Linie. Selbst wenn man manuell versucht, xt.sec einzustellen, funktioniert es nicht. Ich habe mehrere andere Methoden ausprobiert, aber ich kann es scheinbar nicht funktionieren lassen. Gibt es etwas, was ich falsch mache? Gibt es einen einfacheren Weg, um mein Ziel zu erreichen?
Mehr informat Ion benötigt - dies stürzt auf der Xtime_get-Linie? Wenn ja, wie stürzt es ab, wenn Sie das xt manuell einstellen (oder verhält es sich einfach nicht wie gewünscht)? –
Wie funktioniert es nicht, wenn Sie versuchen, xt.sec manuell einzustellen? xt.sec = 1 ist wahrscheinlich eine unglaublich kurze Zeit, da ich denke, dass sec mindestens in Millisekunden ist. Wenn ja, würden Sie für eine Millisekunde schlafen. – Skurmedel
http://www.boost.org/doc/libs/1_38_0/doc/html/thread/time.html#thread.time.system_time sieht es auch so aus, als ob die aktuellste Version der Bibliothek nun Komponenten von boost verwendet :: date_time, um die Dauer anzugeben. – Skurmedel