ServiceStack服务调用异步方法

时间:2014-02-02 15:55:53

标签: c# asynchronous servicestack async-await

我有一个ServiceStack服务。现在在servicestack服务中,我需要从异步实现的组件中调用一个Method

async Task GetDataAsync();

由于ServiceStack方法无法标记为 async ,我想知道如何调用此方法的最佳方法。

return GetDataAsync().Result;

从我的角度来看会闻起来。

最佳做法是什么?

2 个答案:

答案 0 :(得分:4)

您可以使用异步标记ServiceStack方法,但需要升级到版本4.

答案 1 :(得分:2)

如果您想要一个未标记async但需要调用async方法的方法,那么您可以使用以下模式

return GetDataAsync().Result;

然而,这确实意味着该方法现在将阻止调用者,而不是在请求的资源可用时让任务完成。这是否正常就是为什么服务堆栈中的方法无法标记为async的核心。