// Arquivo de exemplo: Assincrono.cs
// Para compilar utilize: csc Assincrono.cs
using System;
using System.IO;
using System.Text;
class Assincrono {	
	[STAThread()]
	public static void Main() {
		new Arquivo();
		Console.Read();
	}	
}
internal sealed class Arquivo {
	private byte[] buffer;
	private FileStream fs;
	public Arquivo() {
		buffer = new byte[128];
		string arquivo = @"C:\Livro\Capitulo25\MeuArquivo.txt";
		fs = File.OpenRead(arquivo);
		fs.BeginRead(buffer, 0, buffer.Length,new AsyncCallback(FinalLeitura), null);
		
	}
	void FinalLeitura(IAsyncResult resultado) {
		int bLidos = fs.EndRead(resultado);
		if (bLidos > 0) {
			fs.BeginRead(buffer, 0, buffer.Length, new AsyncCallback(FinalLeitura), null);
			Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bLidos));
		}
		else {
			fs.Close();
		}
	}
}

