Continuation tasks in .NET TPL: a simple continuation example
June 13, 2017 Leave a comment
Tasks in .NET TPL make it easy to assign tasks that should run upon the completion of another 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:
motherTask.ContinueWith((Task<Series> previousTask) => { Console.WriteLine("Final Balance: {0}", previousTask.Result.CurrentValue); });
The antecedent task will then schedule the continuation task for you. If there are other tasks then they may run before or after the continuation tasks depending on the task scheduler.
View the list of posts on the Task Parallel Library here.