public ResourceExplorer() { InitializeComponent(); m_previewGeneratorFileQueue = new BlockingCollection <File>(); m_previewGenerator = new Thread(() => { File nextFile; while (m_previewGeneratorFileQueue.TryTake(out nextFile, -1)) { var preview = ProviderFor(nextFile.Info.Extension).LoadPreview(nextFile.Info); preview.Freeze(); nextFile.Preview = preview; } }) { IsBackground = true, Name = $"{nameof(ResourceExplorer)}_preview_generator_thread", Priority = ThreadPriority.Lowest }; m_previewGenerator.Start(); m_resourcesCache = new Dictionary <string, WeakReference>(); m_defaultResourceProvider = new DefaultResourceProvider(); OnResourceInfoProvidersChanged(this, default(DependencyPropertyChangedEventArgs)); OnRootPathChanged(this, default(DependencyPropertyChangedEventArgs)); if (!ServiceLocator.IsRegistered <IResourceProviderService>()) { ServiceLocator.Register <IResourceProviderService>(this); } }
public ResourceExplorer() { InitializeComponent(); m_resourcesCache = new Dictionary <string, WeakReference>(); m_defaultResourceProvider = new DefaultResourceProvider(); OnResourceInfoProvidersChanged(this, default(DependencyPropertyChangedEventArgs)); OnRootPathChanged(this, default(DependencyPropertyChangedEventArgs)); if (!ServiceLocator.IsRegistered <IResourceProviderService>()) { ServiceLocator.Register <IResourceProviderService>(this); } }