一、非同步讀取資料
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 programpublic 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檔案系統中寫入 上傳 資料時的流程圖。各資料處理...
資料流測試
回顧 路徑測試將程式 看做是一種有向圖,根據有向圖的拓撲結構結合某些覆蓋指標來設計測試用例。然而程式中不同語句之間往往會有依賴關係,使得拓撲結構上可行的路徑,在邏輯上並不可行,資料流測試可以解決上述問題。資料流測試指關注變數接收值的點和使用 或引用 這些值的點的結構性測試形式 資料流測試用作路徑測試...