Continuation tasks in .NET TPL: continuation with different result type

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

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++)
	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.


About Andras Nemes
I'm a .NET/Java developer living and working in Stockholm, Sweden.

2 Responses to Continuation tasks in .NET TPL: continuation with different result type

  1. Mike Christie says:

    The page for the simple continuation example is missing:

    Can you please fix the link?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Elliot Balynn's Blog

A directory of wonderful thoughts

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog


Once Upon a Camayoc

Bite-size insight on Cyber Security for the not too technical.

%d bloggers like this: