void OnChannelClosed(object sender, EventArgs args) { UdpInputChannel channel = (UdpInputChannel)sender; lock (this.currentChannelLock) { if (channel == this.currentChannel) { this.currentChannel = null; } } }
bool CreateOrRetrieveChannel(out UdpInputChannel newChannel) { bool channelCreated = false; if ((newChannel = currentChannel) == null) { lock (currentChannelLock) { if ((newChannel = currentChannel) == null) { newChannel = new UdpInputChannel(this); newChannel.Closed += new EventHandler(this.OnChannelClosed); currentChannel = newChannel; channelCreated = true; } } } return(channelCreated); }