可能是一个愚蠢的问题,谷歌没有帮助我。在线程内调用 asycn() 是否是一个好习惯。 这是我的场景。
Thread1()
{
auto fu = async(checkStatus);
while ( waitEvent && fu.get() )
{
..
fu = async(checkStatus);
}
}
非常感谢任何帮助。 谢谢!
答案 0 :(得分:0)
是的,std::async
可以在线程内调用。
这可能是个好主意,也可能是个坏主意。
通常,您希望线程尽可能多地做事情,而不是等待事情。理想情况下,您应该将线程视为原始类型,并在构建于 std::thread
或 std::jthread
之上的结构解决问题,而不是直接使用它们。
答案 1 :(得分:0)
我们可以在线程内调用 async() 吗?
是的。事实上,除非程序运行在单进程系统(即某些嵌入式系统)上,否则您在程序中所做的一切都在线程内。