private void StartReading()
{
while (true)
{
IAsyncResult ar = _transport.BeginRead(_request.Buffer, _request.Offset + _totalRead, _request.Count - _totalRead, s_readCallback, this);
if (!ar.CompletedSynchronously)
{
#if DEBUG
_request._DebugAsyncChain = ar;
#endif
break;
}
int bytes = _transport.EndRead(ar);
if (CheckCompletionBeforeNextRead(bytes))
{
break;
}
}
}