ProgressAggregator(ProgressAggregator parent) { this.parent = parent; this.invoker = parent.invoker; this.root = parent.root; parent.Add(this); }
void Remove(ProgressAggregator child) { lock (sync) { if (!children.Remove(child)) { return; } ++completedContributorsCount; } invoker.Invoke(root.RootUpdate); }
public ProgressEventsSink(ProgressAggregator owner) { this.owner = owner; owner.Add(this); }
void Add(ProgressAggregator child) { lock (sync) children.Add(child); }