36 namespace System.Threading.Tasks
38 sealed
class TpScheduler: TaskScheduler
40 static readonly WaitCallback callback = TaskExecuterCallback;
42 protected internal override void QueueTask (Task task)
45 var thread =
new Thread (l => ((Task)l).Execute ()) {
60 ThreadPool.QueueUserWorkItem (callback, task);
63 static void TaskExecuterCallback (
object obj)
65 Task task = (Task)obj;
69 protected override IEnumerable<Task> GetScheduledTasks ()
71 throw new NotImplementedException();
74 [MonoTODO (
"Tasks cannot be dequeued")]
75 protected internal override bool TryDequeue (Task task)
80 protected override bool TryExecuteTaskInline (Task task,
bool taskWasPreviouslyQueued)
82 if (taskWasPreviouslyQueued && !TryDequeue (task))
85 return TryExecuteTask(task);