public void SendAsync(byte[] message)
{
// Make sure the socket is still open
if (SocketClosed) return;
// Create a lock, so we don't add a message while the old one is being cleared
lock (_lockObj)
SendMessage.AddRange(message);
// Send if we aren't already in the middle of an Async send
if (!WaitingOnAsync) ProcessSend();
}