Dot-Net

ObjectCache 的非同步版本?

  • May 6, 2014

我正在考慮通過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 版本的記憶體提供程序實​​現該介面,並且執行良好。

我在 github 上發布了這段程式碼

引用自:https://stackoverflow.com/questions/23162248