#include <iostream>
#include <string>
#include <thread>
#include <future>
int main()
{
auto pms = std::promise<std::string>();
auto ftr = pms.get_future();
std::thread([&](){pms.set_value("hello world");});
ftr.wait();
std::cout << ftr.get() << std::endl;
return 0;
}
Selon this link, std::future::wait
blocs jusqu'à ce que le résultat devient avaiable.
Pourquoi ne pas l'avenir :: attente() bloquer
Cependant, le code ci-dessus ne peut rien imprimer. Évidemment le fil principal a fini avant que le fil de pms.set_value
finisse.
Pourquoi ne pas ftr.wait()
bloquer?
Je vous suggère de jeter un oeil à std :: async – LeDYoM