这是测试任务是否完成的正确方法吗?
const concurrency::task<void> voidTask;
if (voidTask != m_getInfoAsync)
{
if (!m_getInfoAsync.is_done())
{
return 0;
}
}
if (voidTask != m_getRangeAsync)
{
if (!m_getRangeAsync.is_done())
{
return 0;
}
}
答案 0 :(得分:0)
虽然task::is_done
是测试任务是否完成的正确方法,但我建议不要使用它。如果is_done
返回false,那么当您开始对该事实采取行动时,该任务可能已经完成。这个功能非常活泼,更不用说这个功能可能需要一些同步,这可能会减慢程序的速度。
相反,只需链接延续或使用co_await
。在那里完成任务。