1

我正在尝试将 NCache 用作具有数据更改通知的共享键值存储。这是我尝试过的:

var cache = NCache.InitializeCache("mycache");
cache.RegisterCacheNotification("123", CacheDataModified, EventType.ItemAdded | EventType.ItemUpdated);

var data = 7;
var cacheItem = new CacheItem(data) {
    Priority = CacheItemPriority.NotRemovable
};

cache.Insert("123", cacheItem);

while(true) {
    Thread.Sleep(200);
}

和回调:

private static void CacheDataModified(string key, CacheEventArg cacheeventargs) {
    var newValue = cacheeventargs.Item;
    ;
}

我在回调中设置了一个断点,但我得到的唯一通知是带有key = "123", 和的通知cacheeventargs.CacheItemRemovedReason = Underused

这让我想知道 NCache Open-Source 4.4SP1 是否支持项目级通知。难道我做错了什么?

4

1 回答 1

1

这其实很正常。项目级通知似乎以这种方式工作。回调接收到项目“123”已更新的通知,并且Get必须发出后续以获取新值。

CacheItemRemovedReason表示值,因为它是enum的默认值。

于 2016-02-17T12:44:53.037 回答