public ConsumerHandle(IMonitorEventConsumer consumer, Action disposeCallback) { this.Consumer = consumer; this.Consumer.OnNotifyLevelChange += this.OnConsumerFlagsChanged; _disposeCallback = disposeCallback; this.ReadFlags(); }
/// <summary> /// Adds an event consumer. /// </summary> /// <param name="consumer">Event consumer instance.</param> /// <returns>Disposable handle to unsubscribe consumer.</returns> public static IDisposable AddConsumer(IMonitorEventConsumer consumer) { Interlocked.Increment(ref s_consumerCount); return(new ConsumerHandle(consumer, () => Interlocked.Decrement(ref s_consumerCount))); }