/// <summary> /// Cancel a task. Task will have its cancel function called /// if it is cancelled. Tasks that are already running or /// finishing can not be cancelled. /// </summary> public void Cancel(IThreadedTask task) { lock (m_lock) { if (m_scheduledTasks.Contains(task)) { task.Cancel(); m_scheduledTasks.Remove(task); } else if (m_waitingTasks.Contains(task)) { task.Cancel(); m_waitingTasks.Remove(task); } } }
public void Cancel(IThreadedTask task) { object @lock = this.m_lock; lock (@lock) { if (this.m_scheduledTasks.Contains(task)) { task.Cancel(); this.m_scheduledTasks.Remove(task); } else if (this.m_waitingTasks.Contains(task)) { task.Cancel(); this.m_waitingTasks.Remove(task); } } }
/// <summary> /// Cancel a task. Task will have its cancel function called /// if it is cancelled. Tasks that are already running or /// finishing can not be cancelled. /// </summary> public void Cancel(IThreadedTask task) { lock(m_lock) { if (m_scheduledTasks.Contains(task)) { task.Cancel(); m_scheduledTasks.Remove(task); } else if (m_waitingTasks.Contains(task)) { task.Cancel(); m_waitingTasks.Remove(task); } } }