我有一个ServiceStack服务。现在在servicestack服务中,我需要从异步实现的组件中调用一个Method
async Task GetDataAsync();
由于ServiceStack方法无法标记为 async ,我想知道如何调用此方法的最佳方法。
return GetDataAsync().Result;
从我的角度来看会闻起来。
最佳做法是什么?
答案 0 :(得分:4)
您可以使用异步标记ServiceStack方法,但需要升级到版本4.
答案 1 :(得分:2)
如果您想要一个未标记async
但需要调用async
方法的方法,那么您可以使用以下模式
return GetDataAsync().Result;
然而,这确实意味着该方法现在将阻止调用者,而不是在请求的资源可用时让任务完成。这是否正常就是为什么服务堆栈中的方法无法标记为async
的核心。