Ejemplo n.º 1
0
        private void UpdateGUI(object sender, ProgressChangedEventArgs progressChangedEventArgs)
        {
            var       worker  = (BackgroundWorker)sender;
            var       modules = _newModulesToShowByWorker[worker].ToList();
            const int maxModulesProcessedPerIteration = 5;

            var first = 0;
            var count = Math.Min(maxModulesProcessedPerIteration, modules.Count);

            if (worker.CancellationPending)
            {
                _view.CancelModulesViewUpdateFor(worker);
                return;
            }

            while (count > 0)
            {
                if (worker.Equals(_actualWorker))
                {
                    if (worker.CancellationPending)
                    {
                        _view.CancelModulesViewUpdateFor(worker);
                        return;
                    }

                    _view.DisplayModulesInOrder(modules.GetRange(first, count), worker, _jobOrder);
                    first = first + count;
                    count = Math.Min(maxModulesProcessedPerIteration, (modules.Count) - first);
                    _jobOrder++;
                }
            }
        }