在这种方法中:
private async List<stuff> GetData()
{
return await _appCache.GetAsync("SiteStructurePages",
() => _repository.GetSomeStuff());
}
有什么理由让它保持异步吗?我的代码只会以异步方式执行一次,所有后续请求都将使用缓存。异步传播到我的应用程序的其他部分,这不会打到数据库,因为很多东西都被缓存了。
编辑: 我的应用程序是IIS网站应用程序。
答案 0 :(得分:2)
有什么理由让它保持异步吗?
这真的取决于你。如果您确实需要利用异步操作,能够扩展,那么请保留它。否则,如果您不这样做,请使用同步API。它完全取决于您以及您在代码库中实际使用的内容。
我理解你一直担心异步方法会一直走到&#34;#34;并实际上改变整个代码库变为异步。这就是为什么你应该这样做,只要它值得。
附注 - 您可以稍微修改代码以节省异步状态机生成:
private Task<List<stuff>> GetData()
{
return _appCache.GetAsync("SiteStructurePages",
() => _repository.GetSomeStuff());
}
答案 1 :(得分:0)
如果您可以确保通话速度快并且不会阻止用户界面线程,那么请确保您不需要在此线程上进行异步。
但是,如果这些事情不在您的控制范围内,那么我会将其保持异步。