Какой планировщик задач используется, когда я запускаю задачи из задачи, которая была запущена с указанным планировщиком c?
Task.Factory.StartNew(A, CancellationToken.None, TaskCreationOptions.None, new MyTaskScheduler());
// ...
void A()
{
// 1
Parallel.Invoke(sometasks);
// 2
Task.Run(sometask);
// 3
Parallel.For(/*...*/);
// 4
// Any other task execution that isn't specifying a scheduler explicitly
}
Все ли примеры будут запланированы MyTaskScheduler? Я хочу использовать QueuedTaskScheduler ( From ParallelExtensionsExtras ) для обработки приоритетов и ограничений параллелизма для сложных запросов веб-API (которые могут запускать задачи и / или использовать другие функции TPL).