illustrates asynchronous I/O : Asynchronous Input output « File Stream « C# / C Sharp






illustrates asynchronous I/O

illustrates asynchronous I/O
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/

 /*
  Example15_18.cs illustrates asynchronous I/O
*/

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();
    }

  }

}



           
       








Related examples in the same category

1.Synchronous Writing, Asynchronous Reading
2.Asynchronous Writing, Asynchronous Reading