Example #1
0
        private void SendNextCStoreRequest()
        {
            DateTime linger = DateTime.Now.AddSeconds(Linger + 1);

            while (linger > DateTime.Now && !_cancel)
            {
                while (_sendQueue.Count > 0 && !_cancel)
                {
                    _current = _sendQueue.Dequeue();
                    _sendQueue.Preload(_preloadCount);

                    CStoreRequestResult result = _current.Send(this);

                    if (result == CStoreRequestResult.Success ||
                        result == CStoreRequestResult.Reassociate)
                    {
                        return;
                    }

                    linger = DateTime.Now.AddSeconds(Linger + 1);
                }
                Thread.Sleep(100);
            }
            SendReleaseRequest();
        }