我正在尝试使用Akavache的BlobCache.InMemory.GetOrCreateObject
将缓存添加到我的一个数据库表中,当我异步调用它时,一切都很好。但由于异步要求调用者也要更改为异步,并且有很多地方需要更改,所以我选择同步调用BlobCache.InMemory.GetOrCreateObject
,而不是通过执行以下操作
public async Task<List<T>> GetAllDataAsync() => await BlobCache.InMemory.GetOrCreateObject(...);
public List<T> GetAllData() => GetAllDataAsync().Result;
这会导致死锁。我做错了什么?
Edit1 :此代码在ASP.NET Web API中运行
答案 0 :(得分:2)
Akavache专为移动和桌面应用程序而设计,在服务器环境中的性能非常差。使用Redis或memcached。