future::wait_for
#include <thread>
#include <future>
#include <iostream>
#include <chrono>
using std::thread,
std::promise,
std::future,
std::future_status,
std::cerr;
int main(){
promise<int> p;
future<int> f = p.get_future();
auto thread1 = [](promise<int>* pr, int n){
int r = n * 3;
std::this_thread::sleep_for(std::chrono::milliseconds(5000));
pr->set_value(r);
};
thread t(thread1, &p, 45);
future_status status;
std::chrono::milliseconds ms{1000};
cerr << "waiting...\n";
while((status = f.wait_for(ms)) != future_status::ready){
cerr << "waiting...\n";
}
t.join();
cerr << "result: " << f.get() << "\n";
return 0;
}
C++ Examples© 2024 TBD