Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Using

Eu não entendi o porquê dos dois Using.

a aplicação já não foi fechada no primeiro?

1 resposta
solução!

Tanto a classe FileStream como a StreamReader implementam de alguma forma a interface IDisposable que possui o método Dispose().

Cada using é responsável por uma classe e ao final da execução do código dentro das chaves, cada using finaliza sua classe de forma individual (executado método Dispose()).

using (var fluxoDeArquivo = new FileStream(enderecoDoArquivo, FileMode.Open))
using (var leitor = new StreamReader(fluxoDeArquivo))
{
    // Codigo dos dois using
}

Outro exemplo de uso, é quando a aplicação pode ter finalizado o uso do segundo using, mais não do primeiro, desta forma ela executa apenas o método Dispose do segundo e continua usando o primeiro.

using (var fluxoDeArquivo = new FileStream(enderecoDoArquivo, FileMode.Open))
{
    //codigo do primeiro using ....
    ... 
    ... 
    using (var leitor = new StreamReader(fluxoDeArquivo))
    {
        // codigo do segundo using ....
    }    //Finaliza segundo using

    //codigo do primeiro using ....
    ...
} //Finaliza primerio using