void Remove(ProgressEventsSink sink) { lock (sync) { if (!sinks.Remove(sink)) { return; } ++completedContributorsCount; } invoker.Invoke(root.RootUpdate); }
void Add(ProgressEventsSink sink) { lock (sync) sinks.Add(sink); }
void Remove(ProgressEventsSink sink) { lock (sync) { if (!sinks.Remove(sink)) { return; } ++completedContributorsCount; } invoker.Invoke(root.RootUpdate); }
void Add(ProgressEventsSink sink) { lock (sync) sinks.Add(sink); }