我想创建一个已从给定结果中完成的新任务。我目前的解决方法是:
return concurrency::task<T>([]{return result;});
有什么更好的吗?
问题在于以下代码:
concurrency::task<bool> foo()
{
if (smth)
// the result is
return (foo_other() && foo_other2()).then([](std::vector<bool> results) {...});
//return false;
return concurrency::task<bool>([]{return false;});
}
如您所见,我的函数是异步的,它依赖于另一个异步函数。但有时我可以退出应用程序,例如如果异步任务已经完成。在这种情况下,我需要返回一个可持续的任务,该任务返回指定的结果。
答案 0 :(得分:6)
您可以按如下方式创建已完成的任务:
concurrency::task_from_result<bool>(false);