private void _DoWorkAnalyzeFolder(object sender, DoWorkEventArgs wEvent) { FilesInFolder = new ObservableCollection <FileData>(); OtherFilesInFolder = new ObservableCollection <FileData>(); _FileCounter = 0; _OtherFilesCounter = 0; TimeWorking.Start(); Invoke((Action) delegate { FilesToMove.Value = 0; }); string[] filePaths = _GetAllInputFiles(); _FilesToGo = filePaths.Length; for (int i = 0; i < _FilesToGo; i++) { _FileCounter++; // Analyze FileData f = new FileData(); f.FilePath = filePaths[i]; // progress _WorkerUi.ReportProgress((int)((double)(i) / _FilesToGo * 100), $"Analyzing {f.FilePath.Replace(FolderPathInput.Text, "")}"); _AnalyzeFile(ref f); // canceling if (_WorkerUi.CancellationPending) { wEvent.Cancel = true; break; } } ShowMessage($"Valid files found: {_FileCounter}"); ShowMessage($"Files to move: {FilesToMove.Value}"); }
private void bwConverter_DoWork(object sender, DoWorkEventArgs e) { var converterOptions = e.Argument as ConverterOptions; var parallelOptions = GetParallelOptions(); Parallel.ForEach(converterOptions.Files, parallelOptions, currentFile => { Converter.ConvertImage(currentFile, converterOptions.OutputDirectory, Settings); BwConverter.ReportProgress(0); }); }