Dot-Net
ObjectCache 的非同步版本?
我正在考慮通過ObjectCache類實現一些分佈式記憶體客戶端(Redis 和 Memcached)。我注意到的一件事是這個抽像類的所有方法都是同步的,這意味著它們都沒有返回任務。由於在分佈式記憶體中獲取或放置事物的呼叫將不在本地機器上,並且包括網路旅行,我想使用這些操作的非同步版本。那麼.Net 框架中是否有標準的記憶體類,比如支持非同步模式的 CacheObject?
儘管@TrevorBrooks 提到的並行擴展包中有一個 AsyncCache,但它並沒有按我預期的方式工作。我需要使用可以等待的任務從分佈式記憶體中放置/獲取/刪除項目。所以我最終創建了以下界面:
public interface IAsyncCache<T> { Task Initialize(Dictionary<string, string> parameters); Task Put(string key, T value, TimeSpan lifeSpan); Task<T> Get(string key); Task Remove(string key); }從那以後,我已經能夠針對幾個為其 get/put/remove 方法提供 Task/Async 版本的記憶體提供程序實現該介面,並且執行良好。