private void PerformNextRequest() { var ok = false; LongPollingRequest nextRequest = null; lock (this) { if (_transportQueue.Count > 0 && _transmissions.Count <= 1) { ok = true; nextRequest = _transportQueue[0]; _transportQueue.Remove(nextRequest); _transmissions.Add(nextRequest); } } if (ok) { nextRequest?.Send(); } }