在ASP.NET控制器中有多个等待是否有效?

时间:2014-04-18 07:21:29

标签: c# asp.net asp.net-mvc asp.net-web-api

我编码了以下内容:

[ResponseType(typeof(Config))]
public async Task<IHttpActionResult> Get()
{
     var currentUserId = User.Identity.GetUserId();
     Config config = await db.Configs.FindAsync(currentUserId);
     if (config == null)
     {
         config = new Config();
         config.UserId = currentUserId;
         db.Configs.Add(config);
         await db.SaveChangesAsync();
         return Ok(config);
     }

     return Ok(config);
}

我之前没有看过这种类型的动作。有人可以澄清是否可以在这样的方法中有两个等待?

1 个答案:

答案 0 :(得分:1)

是的,这是正确的方法。来自IIS的请求线程将在await调用时释放,同时查询数据库并且之后将返回执行。