internal async Task VisitNodesAsync(ILibraryNodeVisitor visitor, CancellationToken ct = default(CancellationToken)) { await _searching.WaitAsync(); try { await Task.Run(() => _root.Visit(visitor, ct)); ApplyUpdates(true); } finally { _searching.Release(); } }
public void VisitNodes(ILibraryNodeVisitor visitor, CancellationToken ct = default(CancellationToken)) { lock (this) { _root.Visit(visitor, ct); } }