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); } }
public void RaiseTaskCanceling(TaskCancelingEventArgs e) => _taskCanceling?.Invoke(e);