private void SurfAlgoIndexing(SurfSettings surfSetting) { var imageFiles = getFiles(IndexDirectory, "*.gif|*.jpg|*.png|*.bmp|*.jpeg", SearchOption.TopDirectoryOnly); int totalFileCount = imageFiles.Length; Dispatcher.Invoke((Action) delegate { pbIndex.Minimum = 0; pbIndex.Maximum = totalFileCount; lblIndexStatus.Text = "Indexing.."; }); if (surfSetting.Algorithm == SurfAlgo.Linear) { SurfIndexer2 surfIndexer = new SurfIndexer2(); if (ExecInParallel) { surfIndexer.IndexFilesAsync(imageFiles, IndexBgWorker, WriteIndexStatus, surfSetting); } else { surfIndexer.IndexFiles(imageFiles, IndexBgWorker, WriteIndexStatus, surfSetting); } } else { SurfIndexer1 surfIndexer = new SurfIndexer1(); if (ExecInParallel) { throw new InvalidOperationException("Parallel exec not supported!"); } surfIndexer.IndexFiles(imageFiles, IndexBgWorker, WriteIndexStatus, surfSetting); } }
private void SurfAlgoIndexing(SurfSettings surfSetting) { var imageFiles = getFiles(IndexDirectory, "*.gif|*.jpg|*.png|*.bmp|*.jpeg", SearchOption.TopDirectoryOnly); int totalFileCount = imageFiles.Length; Dispatcher.Invoke((Action)delegate { pbIndex.Minimum = 0; pbIndex.Maximum = totalFileCount; lblIndexStatus.Text = "Indexing.."; }); if (surfSetting.Algorithm == SurfAlgo.Linear) { SurfIndexer2 surfIndexer = new SurfIndexer2(); if (ExecInParallel) surfIndexer.IndexFilesAsync(imageFiles, IndexBgWorker, WriteIndexStatus, surfSetting); else surfIndexer.IndexFiles(imageFiles, IndexBgWorker, WriteIndexStatus, surfSetting); } else { SurfIndexer1 surfIndexer = new SurfIndexer1(); if (ExecInParallel) throw new InvalidOperationException("Parallel exec not supported!"); surfIndexer.IndexFiles(imageFiles, IndexBgWorker, WriteIndexStatus, surfSetting); } }