public virtual void Dispose() { if (IsDisposed) { return; } IsDisposed = true; //GC.SuppressFinalize(this); if (DeferTimer != null) { DeferTimer.Stop(); DeferTimer = null; } Processed = 0; Processing = false; Queue.Free(true); Queue = null; Handler = null; Mutator = null; Callback = null; }
private void InternalDeferredCallback() { if (DeferTimer != null) { DeferTimer.Stop(); DeferTimer = null; } Process(); }
public virtual void Process() { if (IsDisposed /* || Processing*/) { return; } if (Queue.Count == 0) { OnProcessed(); return; } Processing = true; TEffectInfo info = Dequeue(); if (!OnProcess(info)) { ++Processed; Process(); return; } ++Processed; if (Deferred) { DeferTimer = Timer.DelayCall( GetDeferDelay(info), () => { if (DeferTimer != null) { DeferTimer.Stop(); DeferTimer = null; } Process(); }); } else { Process(); } }
public MainWindowViewModel ( [NotNull] IYouTubeCleanupToolDbContextFactory youTubeCleanupToolDbContextFactory, [NotNull] IMapper mapper, [NotNull] IGetAndCacheYouTubeData getAndCacheYouTubeData, [NotNull] IUpdateDataViewModel updateDataViewModel, [NotNull] IWindowService windowService, [NotNull] IErrorHandler errorHandler, [NotNull] IDoWorkOnUi doWorkOnUi, [NotNull] IDebugSettings debugSettings, [NotNull] ILogger logger ) { _youTubeCleanupToolDbContextFactory = youTubeCleanupToolDbContextFactory; Videos = new ObservableCollection <WpfVideoData>(); Playlists = new ObservableCollection <WpfPlaylistData>(); VideoFilter = new ObservableCollection <VideoFilter>(); _mapper = mapper; _getAndCacheYouTubeData = getAndCacheYouTubeData; CheckedOrUncheckedVideoInPlaylistCommand = new RunMethodCommand <WpfPlaylistData>(async o => await UpdateVideoInPlaylist(o), errorHandler.HandleError); OpenPlaylistCommand = new RunMethodCommand <PlaylistData>(OpenPlaylist, errorHandler.HandleError); OpenChannelCommand = new RunMethodCommand <VideoData>(OpenChannel, errorHandler.HandleError); OpenVideoCommand = new RunMethodCommand <VideoData>(OpenVideo, errorHandler.HandleError); SearchCommand = new RunMethodWithoutParameterCommand(Search, errorHandler.HandleError); RefreshDataCommand = new RunMethodWithoutParameterCommand(UpdateAllPlaylists, errorHandler.HandleError); UpdateSettingsCommand = new RunMethodWithoutParameterCommand(UpdateSettings, errorHandler.HandleError); RefreshSelectedPlaylistCommand = new RunMethodWithoutParameterCommand(UpdateSelectedPlaylist, errorHandler.HandleError); ShowLogsCommand = new RunMethodWithoutParameterCommand(ShowLogsWindow, errorHandler.HandleError); _searchTypeDelayDeferTimer = new DeferTimer(async() => await SearchForVideos(SearchText), errorHandler.HandleError); _selectedFilterDataFromComboBoxDeferTimer = new DeferTimer(async() => await GetVideosForPlaylist(SelectedFilterFromComboBox), errorHandler.HandleError); _selectedVideoChangedDeferTimer = new DeferTimer(async() => await SelectedVideoChanged(SelectedVideo), errorHandler.HandleError); _updateDataViewModel = updateDataViewModel; _windowService = windowService; _doWorkOnUi = doWorkOnUi; _debugSettings = debugSettings; _logger = logger; _debugSettings.ShowIdsChanged += DebugSettingsOnShowIdsChanged; SpecialVideoFilters = new List <VideoFilter>() { new() { Title = "All", FilterType = FilterType.All }, new() { Title = "Uncategorized", FilterType = FilterType.Uncategorized }, }; }