Comment std::thread sommeil

Je suis nouveau à std::thread. J'ai besoin de mettre un fil de dormir à partir d'un autre thread, est-ce possible? Dans les exemples, tout ce que je vois est un code comme:

std::this_thread::sleep_for(std::chrono::seconds(1));

Mais ce que je veux faire, c'est quelque chose comme:

std::thread t([]{...});
t.sleep(std::chrono::seconds(1));

ou
sleep(t, std::chrono::seconds(1));

Des idées?

Honnêtement, la meilleure solution est de résoudre quelque problème que vous rencontrez une façon logique. Il n'y a vraiment aucune raison que vous ne souhaitez mettre un fil à la veille d'un autre thread. Si le thread est en train de faire le travail que vous voulez faire maintenant, pourquoi le mettre en veille? Si le thread n'est pas de faire le travail que vous voulez faire maintenant, alors que son code est cassé et il doit être corrigé.
Éventuellement ce que vous voulez vraiment utiliser est std::condition_variable et de ses méthodes comme wait(...) ou wait_for(...)

OriginalL'auteur José | 2012-10-12

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *