From 2e7761e113ecc3a4ba8cabc70e762952be4e6954 Mon Sep 17 00:00:00 2001 From: lidgren Date: Tue, 18 Sep 2012 15:12:34 +0000 Subject: [PATCH] UnregisterReceivedCallback added --- Lidgren.Network/NetPeer.Internal.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Lidgren.Network/NetPeer.Internal.cs b/Lidgren.Network/NetPeer.Internal.cs index 408a14a..56751ff 100644 --- a/Lidgren.Network/NetPeer.Internal.cs +++ b/Lidgren.Network/NetPeer.Internal.cs @@ -56,6 +56,18 @@ namespace Lidgren.Network m_receiveCallbacks.Add(new NetTuple(SynchronizationContext.Current, callback)); } + /// + /// Call this to unregister a callback, but remember to do it in the same synchronization context! + /// + public void UnregisterReceivedCallback(SendOrPostCallback callback) + { + if (m_receiveCallbacks == null) + return; + m_receiveCallbacks.Remove(new NetTuple(SynchronizationContext.Current, callback)); + if (m_receiveCallbacks.Count < 1) + m_receiveCallbacks = null; + } + internal void ReleaseMessage(NetIncomingMessage msg) { NetException.Assert(msg.m_incomingMessageType != NetIncomingMessageType.Error);