【发布时间】:2015-02-04 18:55:09
【问题描述】:
我在库 Helper.dll 中有以下代码。此程序集有一个名为 Products.XML 的嵌入式 XML 文件。方法GetProducts 工作正常。但是响应需要几秒钟,因为它是同步的。我想在此加载操作进行时释放 UI。
没有可用于 LINQ to XML 操作的异步调用,例如XDocument.Load,所以我不能在这里使用async 和await。
感谢任何答案。
public static class LookupUtil
{
public static IEnumerable<XElement> GetProducts()
{
var stream = Assembly.
GetExecutingAssembly().
GetManifestResourceStream("Helper.Products.XML");
var reader = new XmlTextReader(stream);
var document = XDocument.Load(reader);
return document.Descendants("Products");
}
}
【问题讨论】:
-
我建议在调用代码中使用
Task.Run。不要试图在你的库代码中伪造异步行为。
标签: c# .net task-parallel-library async-await task