One of the features of asynchronous programming in .NET is saving threads during long running operation execution. The FileStream class can be setup to allow as
Actually, the conditions under which file i/o will be actually be asynchronous are rather specific, even at the native Win32 level. See this article for more details.