假设我有以下接口:实现异步接口同步
public interface IApiOutputCache
{
Task RemoveStartsWithAsync(string key);
Task<T> Get<T>(string key) where T : class;
Task RemoveAsync(string key);
Task<bool> ContainsAsync(string key);
Task Add(string key, object o, DateTimeOffset expiration, params string[] dependsOnKeys);
Task<IEnumerable<string>> GetAllKeys();
}
我可以实现不同的缓存提供。我实现了两次两个不同的缓存:
一)蔚蓝的Redis B)内存缓存
为天青Redis的这个工作绝对没问题,因为StackExchange.Redis提供一切对我来说是异步方法,所以我可以留下来完全异步。
现在我实现了另一个内存缓存,它不为我提供异步API。 现在实现这个接口的最佳实践是什么? 实现它,但只是一切都同步?将内部调用转换为Task.Run
(对于我认为的快速内存缓存调用来说不是一个好主意)。
我同意你的建议。或者,您可以同步运行所有内容并返回Task.FromResult,使其看起来像是异步的。 – hbulens