Что такое планировщик задач? SynchronizationContext — это общая абстракция для «планировщика». Отдельные фреймворки иногда имеют свои собственные абстракции для планировщика, и System.Threading.Tasks это не исключение. Когда Tasks поддерживаются делегатом, поэтому их можно поставить в очередь и выполнить, они связаны с файлом System.Threading.Tasks.TaskScheduler. Точно так же, как SynchronizationContext предоставляет виртуальный Post метод для постановки в очередь вызова делегата (с последующим вызовом делегата с помощью типичных механизмов вызова делегата), TaskScheduler он предоставляет абстрактный QueueTaskметод (с последующим вызовом реализации Taskс помощью ExecuteTask метода). Планировщик по умолчанию, возвращаемый функцией, TaskScheduler.Default представляет собой пул потоков, но из него можно получить TaskScheduler и переопределить соответствующие методы для достижения произвольного поведения в зависимости от того, когда и где Task вызывается. Например, основные библиотеки вклю