Continuation tasks in .NET TPL: continuation with different result type
March 11, 2014 2 Comments
Tasks in .NET TPL make it easy to assign tasks that should run upon the completion of a certain task.
We’ll need a basic object with a single property:
public class Series { public int CurrentValue { get; set; } }
Declare a task that increases the CurrentValue in a loop and return the Series. This task is called the antecedent task.
Task<Series> motherTask = Task.Factory.StartNew<Series>(() => { Series series = new Series(); for (int i = 0; i < 10000; i++) { series.CurrentValue++; } return series; });
Declare the continuation task where we also use the antecedent as method parameter. Note that the return type of the continuation task can be different from that of the antecedent:
Task continuationTask = motherTask.ContinueWith((Task previousTask) => { Console.WriteLine("Interim value: {0}", previousTask.Result.CurrentValue); return previousTask.Result.CurrentValue * 2; });
Read the result of the continuation task:
Console.WriteLine("Final value: {0}", continuationTask.Result);
View the list of posts on the Task Parallel Library here.
The page for the simple continuation example is missing: https://dotnetcodr.com/2014/03/07/continuation-tasks-in-net-tpl-a-simple-continuation-example/
Can you please fix the link?
Thanks for your comment. I’ve fixed the link, it is https://dotnetcodr.com/2015/10/07/continuation-tasks-in-net-tpl-a-simple-continuation-example/
//Andras