public ConsumerHandle(IMonitorEventConsumer consumer, Action disposeCallback)
 {
     this.Consumer = consumer;
     this.Consumer.OnNotifyLevelChange += this.OnConsumerFlagsChanged;
     _disposeCallback = disposeCallback;
     this.ReadFlags();
 }
Exemple #2
0
 /// <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)));
 }