I came across the following question when trying to determine if I was using the Stream methods such as ReadAsync and CopyToAsync correctly:
C# 4.5 file read performance sync vs async
In this question I read the following in the accepted answer:
Most notably, your "async" test does not use async I/O; with file streams, you have to explicitly open them as asynchronous or else you're just doing synchronous operations on a background thread.
In his asynchronous IO code he was using the following to open the FileStream 'asynchronously':
var file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, true)
So I was wondering if you intend to use methods such as CopyToAsync whether you should open the underlying FileStream as shown above?, as opposed to doing something simple like the following:
File.Open(filename, FileMode.Open)
Which is how the example in the actual documentation for CopyToAsync demonstrates opening the underlying FileStream:
https://msdn.microsoft.com/en-us/library/hh159084(v=vs.110).aspx
If it does not matter which way the underlying FileStream is opened, what does the useAsync parameter of the FileStream constructor do?