public override bool TrySend(ArraySegment<byte> segment)
{
if (segment.Array == null || segment.Count == 0)
{
throw new Exception("The data to be sent cannot be empty.");
}
if (!DetectConnected())
{
//may be return false?
return true;
}
var isEnqueued = GetSendingQueue().Enqueue(segment);
if (Interlocked.CompareExchange(ref m_IsSending, 1, 0) != 0)
return isEnqueued;
DequeueSend();
return isEnqueued;
}