【发布时间】:2014-05-14 19:43:32
【问题描述】:
我的服务层正在缓存大量 Db 请求到 memcached,这是否导致无法使用 Async/Await?例如,我怎么能等待这个?
public virtual Store GetStoreByUsername(string username)
{
return _cacheManager.Get(string.Format("Cache_Key_{0}", username), () =>
{
return _storeRepository.GetSingle(x => x.UserName == username);
});
}
注意:如果缓存中存在键,它将返回一个“Store”(不是Task<Store>),如果缓存中不存在键,它将执行 lambda。如果我将 Func 更改为
return await _storeRepository.GetSingleAsync(x => x.UserName == username);
以及方法签名到
public virtual async Task<Store> GetStoreByUsername(string username)
由于缓存返回类型,这显然不起作用。
【问题讨论】:
标签: c# caching async-await