protected override void DoSendRequest(PersistentConnectionRequest req)
 {
     _PendingSend.Enqueue(new PendingSendData()
     {
         _Req = req
     });
     _HaveDataToSend.Set();
 }
        public PersistentConnectionRequest SendRequest(object obj)
        {
            var req = new PersistentConnectionRequest(obj);

            DoSendRequest(req); //req.Send(_Connection);
            if (_ShouldLock)
            {
                lock (_PendingRequests)
                {
                    _PendingRequests.AddLast(req);
                }
            }
            else
            {
                _PendingRequests.AddLast(req);
            }
            return(req);
        }
 protected override void DoSendRequest(PersistentConnectionRequest req)
 {
     req.Send(_Connection);
 }
 protected abstract void DoSendRequest(PersistentConnectionRequest req);