According to MSDN docs, this can be forgiven as "just making sure" ...
StreamWriter.Flush ():
Clears all buffers for the current author and forces any buffered data to be written to the underlying stream.
Stream.Flush ():
When overridden in a derived class, clears all buffers for this stream and forces any buffered data to be written to the base device.
... However, a closer look at the code in TypeDescriptor shows that StreamWriter.Flush () (and I would suggest its asynchronous counterpart to FlushAsync) is an overload that calls the main function, passing in two Boolean parameters that instruct StreamWriter to clear Stream and Unicode encoder. So, one call to StreamWriter.FlushAsync (), combined with the await keyword, to make sure the async operation has occurred completely, should be fine.
source share