Пример #1
0
        public IProgressStatus PerformWork(Control parent, int delayMillis, Action <IProgressMonitor> performWork)
        {
            var progressWaitBroker = new ProgressWaitBroker(performWork);

            PerformWork(parent, delayMillis, progressWaitBroker.PerformWork);
            return(progressWaitBroker.Status);
        }
Пример #2
0
        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);
        }