public AsynchronousTagger( IAsynchronousOperationListener listener, IForegroundNotificationService notificationService, TagSource <TTag> tagSource, ITextBuffer subjectBuffer, TimeSpan uiUpdateDelay) { Contract.ThrowIfNull(subjectBuffer); _subjectBuffer = subjectBuffer; _uiUpdateDelayInMS = (int)uiUpdateDelay.TotalMilliseconds; _batchChangeNotifier = new BatchChangeNotifier(subjectBuffer, listener, notificationService, ReportChangedSpan); _tagSource = tagSource; _tagSource.OnTaggerAdded(this); _tagSource.TagsChangedForBuffer += OnTagsChangedForBuffer; _tagSource.Paused += OnPaused; _tagSource.Resumed += OnResumed; }