ServiceStack:异步/等待服务处理程序

时间:2019-06-19 16:40:30

标签: c# web-services asynchronous async-await servicestack

我已经阅读了一些涉及该问题的SO问题,即使其中许多问题已有数年之久了。

如何在ServiceStack API中编写服务处理程序,使其变为异步/等待状态?

docs.servicestack.net上没有任何文档完全提到异步/等待,我只是找到了一些社区论坛帖子。我认为,您唯一需要做的就是更改此非异步方法:

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);
}

然后通过这样做,异步/等待模型将通过调用堆栈神奇地被利用吗?

神话? =)

1 个答案:

答案 0 :(得分:2)

是的,仅返回任务将使您的服务在ServiceStack中保持异步和非阻塞状态。