J'ai créé un fil d'amélioration en utilisant: boost :: thread thrd (& connectionThread); où connectionThread est une fonction vide simple. Cela fonctionne bien, cependant, lorsque je tente de le faire attendre pendant quelques secondes, par exemple en utilisant:C++ Laisser un thread d'accélération attendre 1 seconde
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec += 1;
boost::thread::sleep(xt); // Sleep for 1 second
Le programme se bloque sur la ligne de xtime_get. Même en essayant manuellement de configurer xt.sec, cela ne fonctionne pas. J'ai essayé plusieurs autres méthodes, mais je n'arrive pas à le faire fonctionner. Y a-t-il quelque chose que je fais de mal? Existe-t-il un moyen plus facile d'atteindre mon objectif?
Plus informat ion nécessaire - cela se bloque sur la ligne xtime_get? Si oui, comment cela plante-t-il lorsque vous définissez manuellement le xt (ou ne se comporte-t-il pas comme vous le souhaitez)? –
En quoi cela ne fonctionne-t-il pas lorsque vous essayez de définir manuellement xt.sec? xt.sec = 1 est probablement une durée incroyablement courte car je pense que sec est au moins en millisecondes. Si c'est le cas, vous dormirez pendant une milliseconde. – Skurmedel
http://www.boost.org/doc/libs/1_38_0/doc/html/thread/time.html#thread.time.system_time Il semble également que la version la plus récente de la bibliothèque utilise désormais des composants de boost: date_time pour spécifier la durée. – Skurmedel