如何异步读取文件
异步读取文件,读取完成之后触发事件,通知主线程。主线程与读取文件的线程互相独立。
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace ExToDB.FileTransfer
{
/// <summary>
/// 异步读取文件
/// </summary>
public class AsyncProcessor
{
private Stream inputStream;
public Stream InputStream
{
get { return inputStream; }
set { inputStream = value; }
}
// 每次读取块的大小
private int bufferSize = 2048;
public event ReturnEndEvent IsReturnEvent;
protected void OnIsReturnEvent()
{
if (IsReturnEvent != null)
IsReturnEvent(this, new ReturnEndReadEventargs(true));
}
public int BufferSize
{
get { return bufferSize; }
set { bufferSize = value; }
}
// 容纳接收数据的缓存
private byte[] buffer;
public AsyncProcessor(string fileName)
{
buffer = new byte[bufferSize];
// 打开文件,指定参数为true以提供对异步操作的支持
inputStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize, true);
}
/// <summary>
/// 开始读取
/// </sum
补充:软件开发 , C# ,