public IProgressStatus PerformWork(Control parent, int delayMillis, Action <IProgressMonitor> performWork) { var progressWaitBroker = new ProgressWaitBroker(performWork); PerformWork(parent, delayMillis, progressWaitBroker.PerformWork); return(progressWaitBroker.Status); }
public override bool RunOnThisThread(Control owner, Action <CancellationToken, IProgressMonitor> job) { var longOperationRunner = new LongOperationRunner(); bool finished = false; longOperationRunner.Run(longWaitBroker => { var progressWaitBroker = new ProgressWaitBroker(progressMonitor => job(longWaitBroker.CancellationToken, progressMonitor)); progressWaitBroker.PerformWork(longWaitBroker); finished = !longWaitBroker.IsCanceled; }); return(finished); }