public void SetExitTasksEarly(bool exitTasksEarly) { if (ExitTasksEarly == exitTasksEarly) { return; } ExitTasksEarly = exitTasksEarly; if (exitTasksEarly) { Logger.Debug("ExitTasksEarly enabled."); lock (_lock) { foreach (var task in PendingTasks) { task?.Cancel(); } PendingTasks.Clear(); foreach (var task in SimilarTasks) { task?.Cancel(); } SimilarTasks.Clear(); } } else { Logger.Debug("ExitTasksEarly disabled."); } }
public void SetPauseWork(bool pauseWork, bool cancelExisting = false) { if (PauseWork == pauseWork) { return; } if (cancelExisting) { lock (_lock) { foreach (var task in PendingTasks) { task?.Cancel(); } PendingTasks.Clear(); foreach (var task in SimilarTasks) { task?.Cancel(); } SimilarTasks.Clear(); } } PauseWork = pauseWork; if (pauseWork) { Logger.Debug("SetPauseWork enabled."); } else { Logger.Debug("SetPauseWork disabled."); TakeFromPendingTasksAndRun(); } }