public void Unsubscribe(ITCPClientReceiver receiver) { lock (m_lock) { if (m_iteratingTroughReceivers) { m_receiversAwaitingUnsubscription.Add(receiver); } else { m_receivers.Remove(receiver); } } }
public void Subscribe(ITCPClientReceiver receiver) { lock (m_lock) { if (m_iteratingTroughReceivers) { m_receiversAwaitingSubscription.Add(receiver); } else if (!m_receivers.Contains(receiver)) { m_receivers.Add(receiver); } } }