gpt4 book ai didi

c# - XElement 在 C# 中使用 async/await 保存文件

转载 作者:行者123 更新时间:2023-11-30 20:04:45 26 4
gpt4 key购买 nike

我尝试从具有异步/等待功能的 XElement 对象编写 xml 文件。但我意识到 XElement.Save() 不能与 async/await 一起运行。

也许解决方案是将 XElement.Save(Stream) 与 FileStream 对象一起使用...

所以,我写了一些代码如下,但很难处理文件流。

public async Task SaveAsync(XElement xml, string filename)
{
using (var fs = new FileStream(filename, FileMode.Create))
{
xml.Save(fs);
await fs.WriteAsync(**please_help_me**);
}
}

如何使用这种方法或是否有任何其他解决方案?

最佳答案

如果您真的不想阻塞 IO(并挂起 ThreadPool 线程/您的线程),您可能需要使用临时 MemoryStream:

using(var ms = new MemoryStream())
using(var fs = new FileStream("myFile", FileMode.Create))
{
xml.Save(ms);
ms.Position = 0;
await ms.CopyToAsync(fs)
}

关于c# - XElement 在 C# 中使用 async/await 保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com