- 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();
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/290820135456.html
来源: http://www.codesnippet.cn/detail/290820135456.html