AcManager.Tools.AcErrors.Solutions.MultiSolution.Run C# (CSharp) Method

Run() public method

public Run ( IEnumerable errors, IProgress progress, CancellationToken cancellation ) : Task
errors IEnumerable
progress IProgress
cancellation System.Threading.CancellationToken
return Task
        public async Task Run(IEnumerable<IAcError> errors, IProgress<AsyncProgressEntry> progress, CancellationToken cancellation) {
            if (_action != null) {
                _action.Invoke(errors);
                return;
            }

            var list = errors.ToList();
            for (var i = 0; i < list.Count; i++) {
                var error = list[i];
                progress?.Report(new AsyncProgressEntry(error.Target.DisplayName, (double)i / list.Count));
                await base.Run(error, progress, cancellation);
                if (cancellation.IsCancellationRequested) return;
                await Task.Delay(10, cancellation);
                if (cancellation.IsCancellationRequested) return;
            }
        }
    }