请注意,这与调用valid()
不同。 valid()
表示未来是否具有有效的共享状态,但我想知道的是是否已设置了未来的值(即通过std::promise::set_value
)。
有一个wait_for
方法,但是我根本不希望调用线程被阻塞,我只想检查是否存在值。从理论上讲,我可以暂时调用wait_for
,但我不知道它是否真的是这样做的首选方式,而且我不确定预期的行为是什么时候调用wait_for
时间为零。
答案 0 :(得分:0)
使用std :: future的目的是能够异步运行任务。因此,只有在需要值时才调用get()来调用,因为 线程阻塞,直到将来准备就绪,然后返回值。