Mono.TextEditor.TextDocument.UpdateFoldSegments C# (CSharp) Méthode

UpdateFoldSegments() public méthode

public UpdateFoldSegments ( List newSegments, bool startTask = false, bool useApplicationInvoke = false, CancellationToken masterToken = default(CancellationToken) ) : void
newSegments List
startTask bool
useApplicationInvoke bool
masterToken CancellationToken
Résultat void
		public void UpdateFoldSegments (List<FoldSegment> newSegments, bool startTask = false, bool useApplicationInvoke = false, CancellationToken masterToken = default(CancellationToken))
		{
			if (newSegments == null) {
				return;
			}

			InterruptFoldWorker ();
			bool update;
			if (!startTask) {
				var newFoldedSegments = UpdateFoldSegmentWorker (newSegments, out update);
				if (useApplicationInvoke) {
					Gtk.Application.Invoke (delegate {
						foldedSegments = newFoldedSegments;
						InformFoldTreeUpdated ();
					});
				} else {
					foldedSegments = newFoldedSegments;
					InformFoldTreeUpdated ();
				}
				return;
			}
			foldSegmentSrc = new CancellationTokenSource ();
			masterToken.Register (InterruptFoldWorker); 
			var token = foldSegmentSrc.Token;
			foldSegmentTask = Task.Factory.StartNew (delegate {
				var segments = UpdateFoldSegmentWorker (newSegments, out update, token);
				if (token.IsCancellationRequested)
					return;
				Gtk.Application.Invoke (delegate {
					if (token.IsCancellationRequested)
						return;
					foldedSegments = segments;
					InformFoldTreeUpdated ();
					if (update)
						CommitUpdateAll ();
				});
			}, token);
		}
		
TextDocument