直至完成技巧在读取本地文件或做其它操作时,实际上将操作请求加入到Windows设备驱动程序的队列中,而Windows的设备驱动程序知道如何与正确的硬件设备通信,就这样,硬件接管了该操作,也就不需要任何线程来执行任何操作,但是应用程序的线程会等待操作系统完成信息的通知,那么本线程也会处于等待状态,直到接收到信息通知后,线程才会继续执行。
例:
using System;
using System.IO;
using System.Threading;
namespace program
{
class wangjun
{
static void Main(string[] args)
{
//打开指示异步I/O操作的文件
FileStream fs = new FileStream(@"C:/a.txt", FileMode.Open, FileAccess.Read, FileShare.Read, 1024, FileOptions.Asynchronous);
Byte[] data = new Byte[100];
//为FileStream对象初始化一个异步读操作
IAsyncResult ar = fs.BeginRead(data, 0, data.Length, null, null);
//这里写一些代码
//挂起该线程直至异步操作结束并获得结果
Int32 bytesread = fs.EndRead(ar);
//已经没有操作执行任务,关闭文件
fs.Close();
//现在可以访问字节数组并晃示结果
Console.WriteLine("Number of bytes read={0}", bytesread);
Console.WriteLine(BitConverter.ToString(data, 0, bytesread));
}
}
}