Tasks hierarchy

We mentioned before that the task scheduler needs explicitly defined dependencies between tasks to run them effectively and in the correct order. However, besides this, there is a way to achieve implicit dependency definition; when we create one task inside another, a special parent-child dependency is created for these tasks. By default, this does not affect how these tasks will be executed, but there is a way to make this dependency really important.

We can create a task with the TaskFactory.CreateNew method by providing a special TaskCreationOptions.AttachedToParent parameter. This changes the usual task behavior, and the important differences are as follows:

  • The parent task will not complete until every child task completes. ...

Get Mastering C# Concurrency now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.