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

369

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

// Kết thúc.

Console.WriteLine("\t[ASYNC READER]: Complete.");

inputStream.Close();

}

}

}

Ví dụ dưới sử dụng

AsyncProcessor

để đọc một file có kích thước 1 MB.

public class AsynchronousIO {

public static void Main() {

// Tạo file thử nghiệm có kích thước 1MB.

FileStream fs = new FileStream("test.txt", FileMode.Create);

fs.SetLength(1000000);

fs.Close();

// Bắt đầu xử lý bất đồng bộ trên một tiểu trình khác.

AsyncProcessor asyncIO = new AsyncProcessor("test.txt");

asyncIO.StartProcess();

// Cùng thời điểm này, thực hiện công việc khác.

// Ở đây chúng ta sẽ lặp trong 10 giây.

DateTime startTime = DateTime.Now;

while (DateTime.Now.Subtract(startTime).TotalSeconds < 10) {

Console.WriteLine("[MAIN THREAD]: Doing some work.");

// Tạm dừng để giả lập một thao tác tốn nhiều thời gian.

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

}

Console.WriteLine("[MAIN THREAD]: Complete.");

Console.ReadLine();

// Xóa file thử.

File.Delete("test.txt");

}