c# - 异步创建目录(不使用 FileSystemWatcher)?

标签 c# io async-await

如何使以下代码异步运行而不必在线程池上创建额外的线程(换句话说,无需 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 只有两个创建目录的函数,CreateDirectoryCreateDirectoryEx。他们都不接受回调。

因此,您无法避免必须创建一个线程来使其异步。您最好的希望是找到一个图书馆,让您远离它。

关于c# - 异步创建目录(不使用 FileSystemWatcher)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709251/

相关文章:

c# - 用于离屏渲染器的 XNA 与 SlimDX

java - 从文本文件读入数组

Haskell:如何在 do block 下使用 where 语句

c# - 许多嵌套的聚合异常

c# - WPF 绑定(bind) ListView ItemContainerStyle 的背景

安哥拉的 C# 文化名称?

C - strtod 似乎添加了数字

c# - 通过 Dispatcher 调用异步 lambda 时双重等待

c# - 任务完成后更改文本框值

c# - 如何从字符串返回枚举值?