/// <summary> /// Export worker do work handler. /// </summary> /// <param name="sender">Export background worker.</param> /// <param name="e">Report source settings.</param> private void ExportWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = sender as BackgroundWorker; Debug.Assert(null != bw); try { BackgroundWorkCancelTracker tracker = new BackgroundWorkCancelTracker(bw); var settings = e.Argument as ExportSettings; Debug.Assert(null != settings); _DoExport(settings, tracker); if (tracker.IsCancelled) { e.Cancel = true; } } catch (UserBreakException) { e.Cancel = true; } }
private void _BackgroundWorkerDoWork(object sender, DoWorkEventArgs e) { Debug.Assert(sender is BackgroundWorker); Debug.Assert(e.Argument is IAsyncSolveTask); BackgroundWorker bw = sender as BackgroundWorker; try { BackgroundWorkCancelTracker tracker = new BackgroundWorkCancelTracker(bw); var task = (IAsyncSolveTask)e.Argument; var result = task.Run(tracker); if (tracker.IsCancelled) e.Cancel = true; else e.Result = result; } catch (UserBreakException) { e.Cancel = true; } }