public async Task SendAsync() { if (!IsOnline) { return; } StringBuilder sb = new StringBuilder(); while (KeyDown.Count > 0) { var ob = KeyDown.Dequeue(); sb.AppendFormat("{0} {1} ", ob.Item1, (int)ob.Item2); } sb.Remove(sb.Length - 1, 1); sb.Append('\n'); byte[] data = Encoding.ASCII.GetBytes(sb.ToString()); int itt = 0; int left = data.Length; while (left > 0) { var sended = await TrySendAsync(data, itt, left, SocketFlags.None); itt += sended; left -= sended; } }