TAILIEUCHUNG - File , Thư mục và IO phần 3

Bạn cần đọc dữ liệu từ một file mà không phải dừng quá trình thực thi mã lệnh của bạn. Kỹ thuật này thường được sử dụng khi file được lưu trữ trong một nơi có tốc độ truy xuất chậm (chẳng hạn một đĩa mạng) | Đọc file một cách bất đồng bộ Ỹ Bạn cần đọc dữ liệu từ một file mà không phải dừng quá trình thực thi mã lệnh của bạn. Kỹ thuật này thường được sử dụng khi file được lưu trữ trong một nơi có tốc độ truy xuất chậm chẳng hạn một đĩa mạng . Tạo một lớp để đọc file một cách bất đồng bộ. Bắt đầu đọc một khối dữ liệu bằng phương thức và truyền phương thức callback. Khi callback được kích hoạt gọi để truy xuất dữ liệu xử lý nó và đọc khối dữ liệu kế tiếp với BeginRead. FileStream hỗ trợ hoạt động bất đồng bộ thông qua phương thức BeginRead và EndRead. Sử dụng các phương thức này bạn có thể đọc một khối dữ liệu trên một trong các tiểu trình do thread-pool cung cấp mà không cần sử dụng trực tiếp các lớp tiểu trình trong không gian tên . Khi đọc file một cách bất đồng bộ bạn cần xác định kích thước khối dữ liệu trong một lần đọc. Tùy trường hợp bạn có thể muốn đọc một khối dữ liệu nhỏ ví dụ chép từng khối một sang file khác hoặc khối dữ liệu tương đối lớn ví dụ bạn cần một lượng thông tin nhất định trước khi xử lý việc gì đó . Bạn chỉ định kích thước khối khi gọi BeginRead và truyền một bộ đệm để chứa dữ liệu. Vì BeginRead và EndRead cần truy xuất nhiều mẩu thông tin giống nhau chẳng hạn FileStream bộ đệm kích thước khối . bạn nên đóng gói mã lệnh đọc file bất đồng bộ trong một lớp. Với lớp AsyncProcessor trong ví dụ dưới đây phương thức công khai StartProcess bắt đầu quá trình đọc bất đồng bộ. Mỗi khi quá trình đọc hoàn tất OnCompletedRead được kích hoạt và khối dữ liệu được xử lý. Nếu còn dữ liệu trong file một quá trình đọc bất đồng bộ mới sẽ được khởi chạy. Kích thước khối bộ nhớ là 2 KB 2048 byte . using System using using public class AsyncProcessor private Stream inputStream Kích thước mỗi khối dữ liệu là 2 KB. private int bufferSize 2048 public int BufferSize get return bufferSize set bufferSize value Bộ đệm chứa dữ liệu. private byte buffer public AsyncProcessor string fileName .

Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.