试图理解为什么这个工作/异步返回

时间:2013-11-13 16:41:53

标签: c# asp.net-web-api async-await

我正在创建一个ASP.NET WebAPI 2控制器。它有效,但我很困惑。好像我正在返回一个List< ..>而不是任务

请向我解释为什么返回列表是正确的。

public class AttendeePriceController : ApiController
{
    // GET api/<controller>
    public async Task<List<AttendeePrice>> Get()
    {
        List<AttendeePrice> attendeesPriceList;
        using (var db = new MyContext())
        {
            attendeesPriceList = await db.AttendeePrices.ToListAsync();
        }
        return attendeesPriceList;
    }

1 个答案:

答案 0 :(得分:7)

async关键字将您的方法转换为状态机。该转换的一部分是生成表示方法的Task。当您“返回”某个值时,状态机将使用值完成该任务。

有关详细信息,请参阅我的async introMSDN docs