/// <summary> /// Removes listener for events. /// </summary> /// <param name="listener">Listener the event listener.</param> /// <exception cref="ArgumentNullException">If <paramref name="listener"/> is null.</exception> public void RemoveEventListener(IDXFeedEventListener <E> listener) { if (listener == null) { throw new ArgumentNullException(); } lock (eventListenerLocker) { eventListeners.Remove(listener); } }
/// <summary> /// Adds listener for events. /// Newly added listeners start receiving only new events. /// This method does nothing if this subscription is <see cref="IsClosed"/>. /// </summary> /// <param name="listener">The event listener.</param> /// <exception cref="ArgumentNullException">If <paramref name="listener"/> is null.</exception> public void AddEventListener(IDXFeedEventListener <E> listener) { if (listener == null) { throw new ArgumentNullException(); } if (IsClosed) { return; } lock (eventListenerLocker) { if (!eventListeners.Contains(listener)) { eventListeners.Add(listener); } } }