C #: Usando o StreamReader para ler a linha do arquivo txt, mas Peek () retorna -1, mesmo que existam muitas linhas

Uso o método Peek () do StreamReader para verificar se há mais linhas que precisam ser processadas. Existem mais de 1000 linhas no meu arquivo, mas Peek () repentinamente retorna -1 quando atinge a linha # 750. Eu verifiquei, mas parece não haver diferenças entre a linha 750 e a 751. Mesmo excluindo as linhas 750 e 751, ele ainda será interrompido em outra linh

Abaixo estão os meus códigos para sua informação:

try
{
    String ftpserver = ftp + filename;
    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpserver));
    reqFTP.UsePassive = false;
    reqFTP.UseBinary = true;
    reqFTP.Proxy = null;
    reqFTP.Credentials = new NetworkCredential(username, password);

    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
    response = (FtpWebResponse)reqFTP.GetResponse();
    stream = response.GetResponseStream();
    reader = new StreamReader(stream, ConfigHelper.MyEncoding);
    while (reader.Peek() > -1)
    {
        string x = reader.ReadLine();
        if (x != null)
        {
          //.......
         }
    }
}
catch (Exception ex)
{
}
finally
{
    if (reader != null)
        reader.Close();
    if (response != null)
        response.Close();
}

Eu tenteiwhile ((x = reader.ReadLine()) != null), mas uma exceção de "Não é possível acessar um objeto descartado" foi lançad

Finalmente eu descobri usando:while (stream.CanRead && (x = reader.ReadLine()) != null)

questionAnswers(10)

yourAnswerToTheQuestion