public static void DispatchPartition<T>( CopyOnWriteList<ContextPartitionStateListener> listeners, Supplier<T> supplier, BiConsumer<ContextPartitionStateListener, T> consumer) { if (listeners == null || listeners.IsEmpty()) { return; } T @event = supplier.Invoke(); foreach (var listener in listeners) { consumer.Invoke(listener, @event); } }