没有异步等待的.Net任务控制器方法

没有异步等待的.Net任务控制器方法,.net,.net-core,controller,async-await,task,.net,.net Core,Controller,Async Await,Task,在.Net中,如果任务控制器方法的任何操作及其依赖项的操作(例如服务类,也是不包含异步等待的任务方法)都没有异步等待,会发生什么情况 例如,RoomController.cs: [HttpGet] public Task<List<Room>> GetRooms() { return _roomService.GetRoomsAsync(); } [HttpGet] 公共任务GetRooms() { return_roomService.GetRoomsAsyn

在.Net中,如果任务控制器方法的任何操作及其依赖项的操作(例如服务类,也是不包含异步等待的任务方法)都没有异步等待,会发生什么情况

例如,RoomController.cs:

[HttpGet]
public Task<List<Room>> GetRooms()
{
    return _roomService.GetRoomsAsync();
}
[HttpGet]
公共任务GetRooms()
{
return_roomService.GetRoomsAsync();
}
。。。RoomService.cs:

    public Task<List<Room>> GetRoomsAsync()
    {
        return _context.Rooms.ToListAsync();
    }
公共任务GetRoomsAsync() { return_context.Rooms.toListSync(); }
这会导致问题或缺点吗?

在web API方法中使用异步等待操作时,当前线程不会等待I/O操作: 作为代码中的示例:

 return _context.Rooms.ToListAsync();

这段代码对数据库进行I/O操作,使用异步等待,因为当前线程可以响应另一个请求,并且不会阻塞I/O。
因此,应用程序中的吞吐量将在不使用任何多线程技术的情况下得到提高。这是非常有益的,不是吗

你能用一个例子来说明“没有异步等待”是什么意思吗?完成,方法声明中没有异步,异步调用没有等待。不,这种方法不会引起问题。将有一个中间件代码等待控制器操作任务完成。