我要检查状态为未决的std :: future
在某些情况下,我想在std :: future'状态待定时启动线程
using namespace std::chrono_literals;
// Create a packaged_task using some task and get its future.
std::packaged_task<void()> task([] {
std::this_thread::sleep_for(3s);
});
auto future = task.get_future();
if future is pending
{
std::thread t(std::move(task));
t.join(); // Join thread.
}
// Run task on new thread.
// Get thread status using wait_for as before.
auto status = future.wait_for(0ms);
// Print status.
if (status == std::future_status::ready) {
std::cout << "Thread finished" << std::endl;
}
else
{
std::cout << "Thread running" << std::endl;
}