如何编写异步linq
本文关键字:linq 异步 何编写 | 更新日期: 2023-09-27 18:27:10
我有这个查询:
public static class myClass
{
list<something> myList = new list<something>();
public void PopulateList()
{
var myQuery = from a in db.something
where a.someproperty == somevar
select a;
myList = myQuery.Tolist();
}
}
如何使此查询异步?
可怜人的异步/等待
await Task.Factory.StartNew(() => PopulateList());
编辑
对于那些想看到它的使用
如何连续一封接一封地发送电子邮件?及其后续问题
我该如何确保它只发送一次电子邮件?
实际上更有效的异步返回是:
await Task.FromResult(PopulateList());
此代码返回已完成的Task,该Task针对需要将同步代码转换为异步代码的方法进行了优化。
您还需要将返回类型从void更改为Task。
来源:aspConf 2012 上ASP.NET中的异步