Skip to content

Async await

irxground edited this page Mar 4, 2013 · 2 revisions

Types

T obj;
Task<T> task;

// T -> Task T
return Task.FromResult(obj);

// Task T -> T
return task.Result; // blocking!

// Task T -> (T -> TResult) -> Task TResult
Func<T, TResult> func;
return task.ContinueWith(t => func(t.Result));
return task.Select(func); // TODO

// Task T -> (T -> Task TResult) -> Task TResult
Func<T, Task<TResult>> func;
return task.ContinueWith(t => func(t.Result)).Unwrap();
return task.SelectMany(func); // TODO

Clone this wiki locally