我正在尝试将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是否支持项目级通知。我做错了吗?
答案 0 :(得分:1)
这实际上是正常的。物品级通知似乎以这种方式工作。回调会收到项目“123”已更新的通知,并且必须发出后续Get
才能获取新值。
CacheItemRemovedReason
具有上述值,因为它是enum
的默认值。