public void CancelTask(EncodingTaskBase task) { task.Cancel(); _ = Application.Current.Dispatcher.Invoke(() => Model.Tasks.Remove(task)); if (!task.Started) { DisposeTask(task); } }
private void DisposeTask(EncodingTaskBase task) { bool taskWasStarted = task.Started; task.Dispose(); _ = Application.Current.Dispatcher.Invoke(() => Model.Tasks.Remove(task)); if (!Model.AnyTasksPending) { _taskStartTimer.Stop(); } if (taskWasStarted) { CheckIfCanStartNewTask(); } }
private void DoTask(EncodingTaskBase task) { if (task?.Started != false) { return; } bool success = task.DoWork(); if (!success) { task.Cleanup(); } if (!string.IsNullOrEmpty(task.Error)) { _ = MessageBox.Show($"Error: {task.Error}", task.SourceFile, MessageBoxButton.OK, MessageBoxImage.Error); } DisposeTask(task); }