public void Increase(ICountableEvent e) { int fullcounter = Interlocked.Increment(ref this.fullCounter); foreach (var observer in this.fullCounterObservers) { observer.OnNext(fullcounter); } }
public void Increase(ICountableEvent e) { var category = e.Category; var value = this.categoryCounter.AddOrUpdate(category, 1, delegate(EventCategory cat, int counter) { return(counter + 1); }); foreach (var observer in this.categoryCounterObservers) { observer.OnNext(new Tuple <EventCategory, int>(category, value)); } }