【发布时间】:2019-06-19 16:40:30
【问题描述】:
我已经阅读了一些涉及此问题的 SO 问题,尽管其中许多问题已有数年历史:
如何在 ServiceStack API 中编写 Service 处理程序,使其变为 async/await?
docs.servicestack.net 上根本没有提到 async/await 的文档,我只是找到了一些社区论坛帖子。我认为你唯一需要做的就是改变这个非异步方法:
public GetBookingResponse Get(GetBooking getBooking)
{
Booking booking = _objectGetter.GetBooking(getBooking.Id);
return new GetBookingResponse(booking);
}
对于异步方法,是这样的:
public async Task<GetBookingResponse> Get(GetBooking getBooking)
{
Booking booking = await _objectGetter.GetBookingAsync(getBooking.Id);
return new GetBookingResponse(booking);
}
通过这样做,异步/等待模型将通过调用堆栈神奇地被利用?
神话? =)
【问题讨论】:
-
这里的魔力都来自
GetBookingAsync()。这也应该是await等等。 -
是的,async await 必须贯穿始终,从头到尾,finish 是代码将其交给异步方法的地方,异步方法又将其交给操作系统。
标签: c# web-services asynchronous async-await servicestack