/// <summary>
 /// スケジューラー指定。
 /// </summary>
 /// <param name="scheduler"></param>
 public TaskCompletionSource(TaskScheduler scheduler)
 {
     if (scheduler == null)
     {
         scheduler = IteratorTasks.Task.DefaultScheduler;
     }
     scheduler.QueueTask(this);
     Task._scheduler = scheduler;
 }
Esempio n. 2
0
        /// <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();
            }
        }