using System;
using System.IO;
using System.Windows.Forms;
public class Example15_18
{
// stream to handle reading
private static FileStream inStream;
// delegated method to handle callback
private static AsyncCallback acb;
// allocate a big buffer for reading
static byte[] buf
= new byte[500000];
// callback to use when read is complete
static void OnComplete(IAsyncResult asyncResult)
{
int bytesRead = inStream.EndRead(asyncResult);
Console.Write(bytesRead);
Console.WriteLine(" bytes read!");
}
[STAThread]
public static void Main()
{
// use an open file dialog to get a filename
OpenFileDialog dlgOpen
= new OpenFileDialog
();
dlgOpen.Title="Select file to read";
if (dlgOpen.ShowDialog() == DialogResult.OK)
{
// open the file
inStream
= new FileStream
(dlgOpen
.FileName, FileMode
.Open,
FileAccess.Read, FileShare.None, 2048, true);
// assign the callback delegate
acb
= new AsyncCallback
(OnComplete
);
// read asynchronously
inStream.BeginRead(buf, 0, 500000, acb, null);
// do some work in the meantime
for(int i=0; i<10; i++)
Console.WriteLine(i);
// And wait for the user to quit
Console.WriteLine("Press Enter to exit");
int resp = Console.Read();
}
}
}
//csharp/7645