private void OnListenerCloseInternal(Listener listener, ListenerCloseEventArgs args) { bool ok = false; lock ( m_Listeners ) { if (m_Listeners.Contains(listener)) { listener.CloseEvent -= OnListenerCloseInternal; listener.NewConnectionEvent -= OnNewConnectionInternal; m_Listeners.Remove(listener); ok = true; } } if (ok) { OnListenerClose(listener, args); if (ListenerCloseEvent != null) { ListenerCloseEvent.Invoke(listener, args); } } }
protected virtual void OnListenerClose(Listener listener, ListenerCloseEventArgs args) { }