예제 #1
0
        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}");
        }
예제 #2
0
        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);
            });
        }