Akka.Interfaced.SlimSocket.Client.UdpChannel.ClientThreadWork C# (CSharp) Method

ClientThreadWork() private method

private ClientThreadWork ( ) : void
return void
        private void ClientThreadWork()
        {
            var messages = new List<NetIncomingMessage>();

            while (_state != ChannelStateType.Closed)
            {
                var readed = _client.ReadMessages(messages);
                if (readed < 1)
                {
                    Thread.Sleep(10);
                    continue;
                }

                foreach (var msg in messages)
                {
                    switch (msg.MessageType)
                    {
                        case NetIncomingMessageType.StatusChanged:
                            var status = (NetConnectionStatus)msg.ReadByte();
                            var reason = msg.ReadString();
                            if (status == NetConnectionStatus.Connected)
                            {
                                OnConnect();
                            }
                            else if (status == NetConnectionStatus.Disconnected)
                            {
                                OnClose(reason);
                            }
                            break;

                        case NetIncomingMessageType.Data:
                            var workStream = new MemoryStream(msg.ReadBytes(msg.LengthBytes), 0, msg.LengthBytes, false, true);
                            var packet = _packetSerializer.Deserialize(workStream);
                            OnReceive(packet);
                            break;
                    }
                }

                // recycle messages to avoid garbage
                _client.Recycle(messages);
                messages.Clear();
            }
        }
    }