假設我有以下接口:實現異步接口同步
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