示例#1
0
        public override void Deschedule(SchedulerContext <TaskInfo> context, TaskInfo task)
        {
            var item = context.Queue.FirstOrDefault(x => x == task);

            if (item == null)
            {
                throw new InvalidOperationException("Not part of this queue.");
            }

            var e = new TaskCancelingEventArgs(task, true);

            context.RaiseTaskCanceling(e);
            if (e.Cancel)
            {
                context.Remove(item);

                var e2 = new TaskEventArgs(task);
                context.RaiseTaskCanceled(e2);
            }
        }
示例#2
0
 public void RaiseTaskCanceling(TaskCancelingEventArgs e) => _taskCanceling?.Invoke(e);