3

我想创建一个已经从给定结果完成的新任务。我目前的解决方法是:

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;});
}

如您所见,我的函数是异步的,它依赖于另一个异步函数。但有时我可以退出应用程序,例如如果异步任务已经完成。在这种情况下,我需要返回一个返回指定结果的可继续任务。

4

1 回答 1

7

您可以按如下方式创建已完成的任务:

concurrency::task_from_result<bool>(false);
于 2014-10-08T19:30:50.287 回答