protected virtual void MainThreadAction(object backgroundProcessingResult) { if (!IsDisposed()) { if (backgroundProcessingResult is OutlineRegionsChange result && TextRange.IsValid(result.ChangedRange)) { lock (this._regionsLock) { this.CurrentRegions = result.NewRegions; } if (this.RegionsChanged != null) { this.RegionsChanged(this, new OutlineRegionsChangedEventArgs(this.CurrentRegions.Clone() as OutlineRegionCollection, result.ChangedRange) ); } } } }
/// <summary> /// Finds out if range represents valid text range (it's length is greater than zero) /// </summary> /// <returns>True if range is valid</returns> public virtual bool IsValid() { return(TextRange.IsValid(this)); }