非同步讀寫資料流

2022-02-10 12:43:07 字數 1861 閱讀 4463

一、非同步讀取資料

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.io;

using system.threading;

namespace usebeginread

public byte buffer

public manualresetevent evthandle

}static int buffersize = 512;

static void main(string args)

;//非同步讀取

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)

//輸出讀取內容值

string readcontent = encoding.utf8.getstring(buffer);

console.write(readcontent);

}if (readcn < buffersize)

else }}

}

二、非同步寫入資料

class program

public int offset

public byte buffer

public manualresetevent waithandle

public filestream fs

}static void main(string args)

string filepath = "d:\\test.txt";

//filestream例項

using (var filestream = new filestream(filepath, filemode.create, fileaccess.readwrite, fileshare.read))

;//做非同步寫操作

filestream.beginwrite(towritebytes, offset, writecountonce, writecallback, state);

//等待寫完畢或者出錯發出的繼續訊號

state.waithandle.waitone();

}console.writeline("done");

console.read();

}/// /// 非同步寫的**函式

///

/// 寫狀態

static void writecallback(iasyncresult asyncresult)

catch (exception ex)

console.writeline("write to " + state.fs.position);

//判斷是否寫完,未寫完繼續非同步寫

if (state.offset + state.writecountonce < state.buffer.length)

else

}

TCP互動資料流 成塊資料流

tcp資料流分類 基於tcp的各類解決方案,可以根據資料吞吐量來大致分成兩大類 1 互動資料型別,例如telnet,ssh,這種型別的協議在大多數情況下只是做小流量的資料交換,比如說按一下鍵盤,回顯一些文字等等。2 資料成塊型別,例如ftp,這種型別的協議要求tcp能盡量的運載資料,把資料的吞吐量做...

本地儲存資料 大資料 Hadoop讀寫資料流程解析

hdfs能正常工作,對外提供資料儲存服務,與hadoop體系中各種元件的協作配合是分不開的。其中元件有 namenode,datanode,client等,下述部分描述了各種元件的作用,以及相關的關係和在檔案系統中讀取和寫入資料的流程。下圖是向hdfs檔案系統中寫入 上傳 資料時的流程圖。各資料處理...

資料流測試

回顧 路徑測試將程式 看做是一種有向圖,根據有向圖的拓撲結構結合某些覆蓋指標來設計測試用例。然而程式中不同語句之間往往會有依賴關係,使得拓撲結構上可行的路徑,在邏輯上並不可行,資料流測試可以解決上述問題。資料流測試指關注變數接收值的點和使用 或引用 這些值的點的結構性測試形式 資料流測試用作路徑測試...