当前位置:编程学习 > C#/ASP.NET >>

如何异步读取文件

异步读取文件,读取完成之后触发事件,通知主线程。主线程与读取文件的线程互相独立。

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# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,