只有在使用FILE_FLAG_OVERLAPPED参数调用CreateFile()API时,才会出现异步文件I / O.
但是,当您使用File.Open打开文件时,您不会指示您是否计划稍后通过WriteAsync()执行同步或异步I / O.
因此,当File.Open()最终调用CreateFile()时,它是否只包含FILE_FLAG_OVERLAPPED参数?对此有任何负面影响吗?
答案 0 :(得分:1)
不,File.Open来电new FileStream(path, mode, access, share);
。如果您致电that constructor,最终将FileOptions.None
传递到FileStream
,但不启用异步模式。
如果您需要正确的异步API调用,则需要调用FileStream
并确保已设置FileOptions.Asynchronous
标志。