我何时必须使用std::promise::set_value_at_thread_exit
/ std::promise::set_exception_at_thread_exit
而不是std::promise::set_value
/ std::promise::set_exception
?
唯一的区别是,只有在调用线程的thread_local
被销毁后,前者才能保证相关的未来就绪。但是,我无法想到任何非合成的例子。
答案 0 :(得分:1)
有一件事可能是知道当程序仍然处于它想知道的状态时,分离的线程是否已经完成运行。