Départ retardé d'un thread en C++ 11

Je suis en C++11 fils et l'ont exécuté un problème.

Je veux déclarer un thread variable comme globale et le lancer plus tard.

Cependant, tous les exemples que j'ai vu semblent commencer immédiatement le thread par exemple

thread t(doSomething);

Ce que je veux, c'est

thread t;

et démarrer le thread plus tard.

Ce que j'ai essayé est

if(!isThreadRunning)
{
    thread t(readTable);
}

mais maintenant, t est le bloc de portée. Je tiens donc à déclarer t et ensuite démarrer le thread plus tard, de sorte que t est accessible à d'autres fonctions.

Merci pour toute aide.

  • Combien de temps voulez-vous attendre?
  • std::this_thread::sleep_for(std::chrono::milliseconds(x)); à l'intérieur du fil?
  • ^ ce, ou de l'utilisation unique_ptr< thread > et d'attribuer un nouveau fil de discussion au point où elle devrait commencer. Cela étant dit: globals sont pour la plupart mal vu.
  • Je pense que la question n'est pas assez claire. Ce que je fais est en cours d'exécution de mon code dans une boucle, et au début de la boucle de vérifier si le thread est en cours d'exécution et si elle est alors de ne pas commencer de nouveau. Cependant je n'ai plus qu'un seul fichier, donc j'ai besoin d'avoir la discussion variable globale ainsi que d'autres fonctions y ont accès.
  • eh bien le unique_ptr pourrait fonctionner? Dans votre boucle d'utilisation if( !myThreadPtr ){ myThreadPtr.reset( new thread( doDomething ); }? Mais même alors, votre excuse d'avoir besoin de quelque chose dans les différents fichiers n'a pas de sens. Si elle le faisait, chaque application unique composé de plusieurs fichiers/fonctions dans le monde n'aurait globals et ce n'est pas le cas 😛
  • Quel est le problème avec juste thread t;, et t = thread(doStuffNow); cas de besoin?
  • Juste parce qu'un objet doit être accessible dans plusieurs unités de traduction ne signifie PAS qu'il doit être global. Il n'y a rien de mal avec le passage des références à l'objet de toutes les fonctions qui en ont besoin.

InformationsquelleAutor Smithy | 2014-08-27