private void FileSystemSnapshotManagerOnFilesChanged(object sender, FilesChangedEventArgs filesChangedEventArgs) { _taskQueue.Enqueue(UpdateFileContentsTaskId, cancellationToken => { using (new TaskQueueGuard(this)) { UpdateFileContentsLongTask(filesChangedEventArgs, cancellationToken); } }); }
private void PersistanceModelOnFilesChanged(object sender, FilesChangedEventArgs filesChangedEventArgs) { Files.Clear(); foreach (var file in filesChangedEventArgs.Files) { Files.Add(new FileViewModel(file.Name, _persistanceModel, _tagsModel)); } }
private void UpdateFileContentsLongTask(FilesChangedEventArgs args, CancellationToken cancellationToken) { Invariants.Assert(_inTaskQueueTask); UpdateFileDatabase(args.FileSystemSnapshot, options => { // We only allow incremental updates if the last update was successfully completed // and if the file system snapshot version we are based on is the same as the // new file system snapshot we are processing if (args.FileSystemSnapshot.Version == _currentFileSystemSnapshotVersion && options.PreviousUpdateCompleted) { return(CreateWithModifiedFiles(args.FileSystemSnapshot, args.ChangedFiles, options, cancellationToken)); } else { Logger.LogInfo($"Starting a full database update: " + $"CurrentSnapshotVersion={_currentFileSystemSnapshotVersion}, " + $"PreviousUpdateCompleted={options.PreviousUpdateCompleted}, " + $"SnapshotVersion={args.FileSystemSnapshot.Version}, " + $"ChangesFiles={args.ChangedFiles?.Count ?? -1}."); return(CreateFullScan(args.FileSystemSnapshot, options, cancellationToken)); } }); }
private void FileSystemProcessorOnFilesChanged(object sender, FilesChangedEventArgs filesChangedEventArgs) { _taskQueue.Enqueue( new TaskId("FileSystemProcessorOnFilesChanged"), () => UpdateFileContents(filesChangedEventArgs.ChangedFiles)); }
private void FileSystemProcessorOnFilesChanged(object sender, FilesChangedEventArgs filesChangedEventArgs) { _customThreadPool.RunAsync(() => UpdateFileContents(filesChangedEventArgs.ChangedFiles)); }
private void FileSystemProcessorOnFilesChanged(object sender, FilesChangedEventArgs filesChangedEventArgs) { _taskQueue.Enqueue(UpdateFileContentsTaskId, cancellationToken => { UpdateFileContents(filesChangedEventArgs.ChangedFiles); }); }
void monitor_Triggered(object sender, FilesChangedEventArgs e) { Singleton <RotorsWorkFlowStarter> .UniqueInstance.StartRotorsWorkFlow(e.FilesChanged); }