Tôi đã xem qua các câu dưới đây khi cố gắng xác định xem tôi đã sử dụng Stream
phương pháp như ReadAsync
và CopyToAsync
một cách chính xác: C# 4.5 file read performance sync vs asynckhông đồng bộ/đang chờ và mở một FileStream?
Trong câu hỏi này, tôi đọc phần sau đây trong câu trả lời được chấp nhận:
Đáng chú ý nhất, kiểm tra "async" của bạn không sử dụng I/O không đồng bộ; với tệp luồng, bạn phải mở chúng một cách rõ ràng là không đồng bộ hoặc khác bạn chỉ đang thực hiện các thao tác đồng bộ trên một chuỗi nền.
Trong mã IO không đồng bộ của mình, ông đã sử dụng sau đây để mở FileStream
'không đồng bộ':
var file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, true)
Vì vậy, tôi đã tự hỏi nếu bạn có ý định sử dụng các phương pháp như CopyToAsync
xem bạn có nên mở tiềm ẩn FileStream
như trình bày ở trên ?, như trái ngược với làm một cái gì đó đơn giản như sau:
File.Open(filename, FileMode.Open)
Đó là cách ví dụ i n các tài liệu thực tế cho CopyToAsync
chứng tỏ mở tiềm ẩn FileStream
: https://msdn.microsoft.com/en-us/library/hh159084(v=vs.110).aspx
Nếu nó không quan trọng mà con đường tiềm ẩn FileStream
được mở ra, những gì hiện các useAsync
tham số của các nhà xây dựng FileStream
làm gì?
Vì vậy, nó không quan trọng đối với các phương thức IO không đồng bộ khác như CopyToAsync? –
Có, quan trọng đối với các phương thức IO không đồng bộ khác như CopyToAsync. nhưng Thật không may, MSDN nói không quan trọng. –