如何使以下代码异步运行而不必在线程池上创建额外的线程(换句话说,无需 Task.Run(...)
)?
Directory.CreateDirectory("\\host\someNetworkDirectory");
理想情况下,我想像这样使用它:
async SomeMethod(){
//...
await Directory.CreateDirectoryAsync("\\host\someNetworkDirectory");
// stuff to do after ensuring the directory exists
//...
}
我试过了 this answer (建议使用 FileSystemWatcher
)但它不适用于文件夹。
最佳答案
在操作系统层面,这个功能是严格同步的。 WinAPI 只有两个创建目录的函数,CreateDirectory
和CreateDirectoryEx
。他们都不接受回调。
因此,您无法避免必须创建一个线程来使其异步。您最好的希望是找到一个图书馆,让您远离它。
关于c# - 异步创建目录(不使用 FileSystemWatcher)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709251/