如何编写异步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();
    }
}

如何使此查询异步?

如何编写异步linq

可怜人的异步/等待

await Task.Factory.StartNew(() => PopulateList());

编辑

对于那些想看到它的使用

如何连续一封接一封地发送电子邮件?及其后续问题

我该如何确保它只发送一次电子邮件?

实际上更有效的异步返回是:

await Task.FromResult(PopulateList());

此代码返回已完成的Task,该Task针对需要将同步代码转换为异步代码的方法进行了优化。

您还需要将返回类型从void更改为Task。

来源:aspConf 2012 上ASP.NET中的异步