我尝试从具有异步/等待功能的 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/