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