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.