private async Task ReceiveMessages() { var received = await client.ReceiveAsync(); if (received.Buffer.Length > 0 && received.Buffer[0] == (byte)MessageTypes.Ping) { ReceivedPong(); SendingPing(); SendMessage(new Message(MessageTypes.Ping)); } lock (ReceiveQueue) { ReceiveQueue.AddRange(received.Buffer); } }