Я столкнулся с следующим вопросом, пытаясь определить, правильно ли я использовал методы Stream
, такие как ReadAsync
и CopyToAsync
:
Сценарий производительности чтения файлов С# 4.5 vs async
В этом вопросе я прочитал следующее в принятом ответе:
В частности, ваш тест "асинхронный" не использует асинхронный ввод-вывод; с файлом потоки, , вы должны явно открыть их как асинхронные, иначе вы просто выполняете синхронные операции в фоновом потоке.
В своем асинхронном IO-коде он использовал следующее, чтобы открыть FileStream
'асинхронно':
var file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, true)
Итак, мне было интересно, собираетесь ли вы использовать такие методы, как CopyToAsync
, следует ли открывать базовый FileStream
, как показано выше?, а не делать что-то простое, например следующее:
File.Open(filename, FileMode.Open)
Вот как демонстрируется пример в фактической документации для CopyToAsync
для открытия базового FileStream
:
https://msdn.microsoft.com/en-us/library/hh159084(v=vs.110).aspx
Если неважно, каким образом открывается базовый FileStream
, что делает параметр useAsync
конструктора FileStream
?