public static void CancelTask(TaskWrapper task) { if (task == null) { throw new ArgumentException("Task cannot be null"); } if (taskManagerControllerInScene.showDebugMessages) { Debug.Log("Cancelling task " + task.name); } if (queuedTasks.Contains(task)) { if (taskManagerControllerInScene.showDebugMessages) { Debug.Log("Removing " + task.name + " from queued tasks"); } queuedTasks.Remove(task); } else if (runningTasks.Contains(task)) { if (taskManagerControllerInScene.showDebugMessages) { Debug.Log(task.name + " is currently running, attempting to cancel then remove"); } task.Cancel(); } else { Debug.LogError("Cannot cancel " + task.name + " since it is not queued or running"); } }
public static void CancelTask(string name) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException("Name cannot be empty or null"); } if (taskManagerControllerInScene.showDebugMessages) { Debug.Log("Cancelling task " + name); } //var runningTasks = taskManagerControllerInScene.runningTasks; TaskWrapper task = runningTasks.FirstOrDefault(checkedTask => checkedTask.name.Equals(name, StringComparison.Ordinal)); if (task == null || !task.name.Equals(name, StringComparison.Ordinal)) { //var queuedTasks = taskManagerControllerInScene.queuedTasks; int taskIndex = queuedTasks.FindIndex(checkedTask => checkedTask.name.Equals(name, StringComparison.Ordinal)); if (taskIndex >= 0) { queuedTasks.RemoveAt(taskIndex); } } else { task.Cancel(); } }