/// <summary> /// スケジューラー指定。 /// </summary> /// <param name="scheduler"></param> public TaskCompletionSource(TaskScheduler scheduler) { if (scheduler == null) { scheduler = IteratorTasks.Task.DefaultScheduler; } scheduler.QueueTask(this); Task._scheduler = scheduler; }
/// <summary> /// スケジューラーを明示してタスク開始。 /// </summary> /// <param name="scheduler"></param> public void Start(TaskScheduler scheduler) { if (Status == TaskStatus.Created) { if (scheduler == null) { throw new ArgumentNullException(); } RunOnce(); scheduler.QueueTask(this); _scheduler = scheduler; } else { throw new InvalidOperationException(); } }