日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

异步读写数据流

發布時間:2025/7/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 异步读写数据流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、異步讀取數據

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Threading;namespace UseBeginRead {class Program{//定義異步讀取狀態類class AsyncState{public FileStream FS { get; set; }public byte[] Buffer { get; set; }public ManualResetEvent EvtHandle { get; set; }}static int bufferSize = 512;static void Main(string[] args){string filePath = "d:\\test.txt";//以只讀方式打開文件流using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)){var buffer = new byte[bufferSize];//構造BeginRead需要傳遞的狀態var asyncState = new AsyncState { FS = fileStream, Buffer = buffer ,EvtHandle = new ManualResetEvent(false)};//異步讀取IAsyncResult asyncResult = fileStream.BeginRead(buffer, 0, bufferSize, new AsyncCallback(AsyncReadCallback), asyncState);//阻塞當前線程直到讀取完畢發出信號asyncState.EvtHandle.WaitOne();Console.WriteLine();Console.WriteLine("read complete");Console.Read();}}//異步讀取回調處理方法public static void AsyncReadCallback(IAsyncResult asyncResult){var asyncState = (AsyncState)asyncResult.AsyncState;int readCn = asyncState.FS.EndRead(asyncResult);//判斷是否讀到內容if (readCn > 0){byte[] buffer;if (readCn == bufferSize) buffer = asyncState.Buffer;else{buffer = new byte[readCn];Array.Copy(asyncState.Buffer, 0, buffer, 0, readCn);}//輸出讀取內容值string readContent = Encoding.UTF8.GetString(buffer);Console.Write(readContent);}if (readCn < bufferSize){asyncState.EvtHandle.Set();}else {Array.Clear(asyncState.Buffer, 0, bufferSize);//再次執行異步讀取操作asyncState.FS.BeginRead(asyncState.Buffer, 0, bufferSize, new AsyncCallback(AsyncReadCallback), asyncState);}}} }

?二、異步寫入數據

class Program{/// <summary>/// 異步回調需要的參數封裝類/// </summary>class AsyncState {public int WriteCountOnce { get; set; }public int Offset { get; set; }public byte[] Buffer { get; set; }public ManualResetEvent WaitHandle { get; set; }public FileStream FS { get; set; }}static void Main(string[] args){//準備一個1K的字節數組byte[] toWriteBytes = new byte[1 << 10];for (int i = 0; i < toWriteBytes.Length; i++){toWriteBytes[i] = (byte)(i % byte.MaxValue);}string filePath = "d:\\test.txt";//FileStream實例using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite, FileShare.Read)){ int offset = 0;//每次寫入32字節int writeCountOnce = 1 << 5;//構造回調函數需要的狀態AsyncState state = new AsyncState{WriteCountOnce = writeCountOnce,Offset = offset,Buffer = toWriteBytes,WaitHandle = new ManualResetEvent(false),FS = fileStream};//做異步寫操作fileStream.BeginWrite(toWriteBytes, offset, writeCountOnce, WriteCallback, state);//等待寫完畢或者出錯發出的繼續信號state.WaitHandle.WaitOne();}Console.WriteLine("Done");Console.Read();}/// <summary>/// 異步寫的回調函數/// </summary>/// <param name="asyncResult">寫狀態</param>static void WriteCallback(IAsyncResult asyncResult){AsyncState state = (AsyncState)asyncResult.AsyncState;try{state.FS.EndWrite(asyncResult);}catch (Exception ex){Console.WriteLine("EndWrite Error:" + ex.Message);state.WaitHandle.Set();return;}Console.WriteLine("write to " + state.FS.Position);//判斷是否寫完,未寫完繼續異步寫if (state.Offset + state.WriteCountOnce < state.Buffer.Length){state.Offset += state.WriteCountOnce;Console.WriteLine("call BeginWrite again");state.FS.BeginWrite(state.Buffer, state.Offset, state.WriteCountOnce, WriteCallback, state);}else {//寫完發出完成信號state.WaitHandle.Set();}}

?

轉載于:https://www.cnblogs.com/wywnet/p/4763693.html

總結

以上是生活随笔為你收集整理的异步读写数据流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久热只有精品 | 自拍偷拍视频在线观看 | 国精产品一品二品国精品69xx | 91视频播放| 夜夜爽av福利精品导航 | 激情免费av | 99国产超薄肉色丝袜交足 | 国产成人精品二区三区亚瑟 | 人妻精品一区二区在线 | 免费一级片视频 | 中国a级大片 | 精品国产影院 | www.com色 | 国产在线精品成人欧美 | 国产98色在线 | 日韩 | 鬼灭之刃柱训练篇在线观看 | 日本黄色性视频 | 91网站在线播放 | 国产九色在线播放九色 | 夜夜涩 | 男男巨肉啪啪动漫3d | 中文字幕超清在线免费观看 | 无码人妻丰满熟妇区96 | 黄色性大片| 成人av电影天堂 | 你懂的在线观看视频 | 国产在线观看不卡 | 91 高清 在线 制服 偷拍 | 伊人网在线视频观看 | 日日噜噜夜夜狠狠久久丁香五月 | 永久免费汤不热视频 | 欧美成人看片黄a免费看 | 欧美一区二区视频在线观看 | 成人毛片18女人毛片 | www.777奇米影视| 亚洲国产999 | 天堂国产一区二区三区 | 风间由美在线观看 | 免费在线观看av网址 | av簧片| 男人操女人逼逼视频 | 老司机在线看片 | 亚洲欧美一区二区三区四区 | aaa欧美| 色多多黄色 | 婷婷激情成人 | 爱情岛论坛亚洲线路一 | 黄色片a| 8x8ⅹ8成人免费视频观看 | 国产精品色图 | 咪咪色在线视频 | 悠悠色影院 | 水蜜桃91 | 亚洲午夜天堂 | 17草在线| 女儿的朋友4在线观看 | 日本黄大片在线观看 | 可以直接在线观看的av | 黄色永久网站 | 中国女人内谢69xxxx免费视频 | 国产一级做a爰片在线看免费 | 亚洲欧美激情在线观看 | 日本55丰满熟妇厨房伦 | 日本成人社区 | 一区二区在线不卡 | 国产一区精品在线 | 一区二区三区不卡视频在线观看 | 麻豆精品91| 欧洲做受高潮免费看 | 国产亚洲美女精品久久久2020 | 欧美一级日韩 | 欧美人与动牲交xxxxbbbb | 亚洲高清视频一区二区 | 中文在线字幕免费观看电 | av免费网 | 蜜臀尤物一区二区三区直播 | 国产精品免费视频一区二区 | 亚洲熟妇av一区二区三区漫画 | 日韩欧美一二三 | 欧美freesex黑人又粗又大 | 国产精品jizz视频 | 欧美日韩人妻精品一区二区三区 | 黄色动漫在线免费观看 | 午夜久久网 | 天天躁日日躁狠狠躁av麻豆男男 | 干b视频在线观看 | 91久久久久久久久久久 | 狠狠操网站| 亚洲美女www午夜 | 国产精品桃色 | 亚洲av无码国产精品麻豆天美 | 伊人久久免费 | 手机在线毛片 | 午夜精品久久久久久久久 | 日本高清三区 | 亚洲国产精品视频在线 | 超碰久草| 操女人的逼逼 | 中文字幕一区二区三区门四区五区 |