You*_*jae 2 c# xelement filestream async-await c#-5.0
我尝试使用async/await功能从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**);
}
}
Run Code Online (Sandbox Code Playgroud)
如何处理这种方法还是有其他解决方案?
如果你真的不想阻止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)
}
Run Code Online (Sandbox Code Playgroud)