} else {
IContinuation cont;
Task cont_task;
- if (continueOnSourceContext && TaskScheduler.Current != TaskScheduler.Default) {
+ if (continueOnSourceContext && !TaskScheduler.IsDefault) {
cont_task = new Task (TaskActionInvoker.Create (continuation), null, CancellationToken.None, TaskCreationOptions.None, null);
cont_task.SetupScheduler (TaskScheduler.Current);
cont = new SchedulerAwaitContinuation (cont_task);
} else {
cont_task = null;
- cont = new ActionContinuation (continuation);
+ cont = new AwaiterActionContinuation (continuation);
}
//
cont_task.SetupScheduler (TaskScheduler.Current);
}
- cont_task.Schedule ();
+ cont_task.Schedule (true);
}
}