I do not think that you can (or should) do this, even if you resort to reflection. Theoretically, you need to get your own TaskSchedulerfrom an existing non-abstract task scheduler, for example. ThreadPoolTaskScheduler.
However, you cannot, because all non-abstract implementations TaskScheduler in TPL are privateor internal.
TaskScheduler.QueueTask Task.Start:
protected override void QueueTask(Task task) {
if () {
}
task.Start(TaskScheduler.Default);
}
. Task.Start TaskScheduler.QueueTask , .
, Task Task.Start. , , ThreadPoolTaskScheduler.QueueTask, .
, , QueueTask, GetScheduledTasks TaskScheduler protected. , .