我想知道如何在async/await
中实现System.IO namespace
方法的{{1}}版本?
答案 0 :(得分:4)
CreateDirectory
是一个奇怪的场景。内置异步版本是理想的,特别是在网络驱动器上打开/创建目录。
通常,如果BCL不直接支持异步,您将能够P / Invoke异步Win32 API。但是,在这种情况下,Win32 API实际上不会公开目录的异步API。所以你必须更低 - 可能直接调用文件系统驱动程序(所有设备驱动程序都支持异步I / O,所以这肯定会有效)。
所以,虽然它并不理想,但在这种情况下你可能会更好地关闭 只是做一个虚假的异步方法,即将呼叫包裹在Task.Run
中
另外,Windows Store风格的目录API是异步的。他们可能会在Win32 API下调用,但实际上我很怀疑它 - 我希望它们可以作为伪异步方法实现。