private void btnStop_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show(@"Are you sure you want to stop the operation?", Caption, MessageBoxButton.YesNo, MessageBoxImage.Stop, MessageBoxResult.No) == MessageBoxResult.No) { return; } using (new ChoWPFWaitCursor()) { Thread.Sleep(1000); ChoRoboCopyManager roboCopyManager = _roboCopyManager; if (roboCopyManager != null) { roboCopyManager.Cancel(); } Thread fileNameProcessorThread = _fileNameProcessThread; if (fileNameProcessorThread != null) { try { fileNameProcessorThread.Abort(); } catch (ThreadAbortException) { Thread.ResetAbort(); } _fileNameProcessThread = null; } } }
private void btnStop_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show(@"Are you sure you want to stop the operation?", Caption, MessageBoxButton.YesNo, MessageBoxImage.Stop, MessageBoxResult.No) == MessageBoxResult.No) { return; } IsStopping = true; btnStop.IsEnabled = false; Task.Run(() => { ChoRoboCopyManager roboCopyManager = _roboCopyManager; if (roboCopyManager != null) { roboCopyManager.Cancel(); } Thread processFilesThread = _processFilesThread; if (processFilesThread != null) { try { processFilesThread.Abort(); } catch (ThreadAbortException) { Thread.ResetAbort(); } _processFilesThread = null; } IsStopping = false; }); }