Правильный способ создать задачу с уже готовым результатом - PullRequest
3 голосов
/ 20 сентября 2011

Иногда я создаю метод, подобный этому

Task<int> f()
{
    if (...) return Task.Factory.StartNew(() => 42); // in this case, result already known
    else ... // return some "real task"
}

Но мне было интересно, есть ли способ создать задачу, которая уже выполнена, так что я не буду нести никаких потенциальных затрат на планирование«расчет» 42

1 Ответ

1 голос
/ 21 сентября 2011

Использование TaskCompletionSource<T>:

TaskCompletionSource<int> tcs = new TaskCompletionSource<int>();
tcs.SetResult(42);
return tcs.Task;

(через MSDN )

...