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);
            }
        }
Example #2
0
        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);
            }
        }