CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 368

368
Chương 9: File, thư mục, và I/O

// Bộ đệm chứa dữ liệu.

private byte[] buffer;

public AsyncProcessor(string fileName) {

buffer = new byte[bufferSize];

// Mở file, truyền giá trị true để hỗ trợ truy xuất bất đồng bộ.

inputStream = new FileStream(fileName, FileMode.Open,

FileAccess.Read, FileShare.Read, bufferSize, true);

}

public void StartProcess() {

// Bắt đầu quá trình đọc bất đồng bộ.

inputStream.BeginRead(buffer, 0, buffer.Length,

new AsyncCallback(OnCompletedRead), null);

}

private void OnCompletedRead(IAsyncResult asyncResult) {

// Một khối đã được đọc. Truy xuất dữ liệu.

int bytesRead = inputStream.EndRead(asyncResult);

// Nếu không đọc được byte nào, stream đang ở cuối file.

if (bytesRead > 0) {

// Tạm dừng để giả lập việc xử lý dữ liệu.

Console.WriteLine("\t[ASYNC READER]: Read one block.");

Thread.Sleep(TimeSpan.FromMilliseconds(20));

// Bắt đầu đọc khối kế tiếp.

inputStream.BeginRead(buffer, 0, buffer.Length,

new AsyncCallback(OnCompletedRead), null);

}else {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.