private void CancelRequest(RedisAsyncRequest member)
 {
     if (member != null)
     {
         try
         {
             member.Cancel();
         }
         finally
         {
             member.Dispose();
         }
     }
 }
        protected override void DoProcessRequest(RedisAsyncRequest request, RedisSocketContext context)
        {
            var cancelRequest = true;

            try
            {
                if (Disposed)
                {
                    return;
                }

                if (request.Send(context))
                {
                    if (Disposed)
                    {
                        return;
                    }

                    Interlocked.Exchange(ref m_CurrentContext, context);

                    var receiveQ = m_ReceiveQ;
                    if (receiveQ != null)
                    {
                        receiveQ.Enqueue(request);
                        cancelRequest = false;

                        m_ReceiveGate.Set();
                    }
                }
            }
            catch (Exception)
            { }
            finally
            {
                if (cancelRequest)
                {
                    request.Cancel();
                }
            }
        }