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");
}