Ejemplo n.º 1
0
 /// <summary>
 ///订阅子节点改变事件
 /// </summary>
 /// <param name="path">节点path</param>
 /// <param name="listener">监听对象</param>
 /// <returns>子节点列表</returns>
 public List <string> SubscribeChildNodeChanges(string path, IZKChildNodeListener listener)
 {
     _childListeners.TryGetValue(path, out ConcurrentHashSet <IZKChildNodeListener> listeners);
     if (listeners == null)
     {
         listeners = new ConcurrentHashSet <IZKChildNodeListener>();
         _childListeners.TryAdd(path, listeners);
     }
     listeners.TryAdd(listener);
     return(Task.Run(async() => await WatchForChildsAsync(path)).ConfigureAwait(false).GetAwaiter().GetResult());
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 移除订阅子节点改变事件
 /// </summary>
 /// <param name="path">节点path</param>
 /// <param name="childListener">监听对象</param>
 public void UnSubscribeChildChanges(string path, IZKChildNodeListener childListener)
 {
     _childListeners.TryGetValue(path, out ConcurrentHashSet <IZKChildNodeListener> listeners);
     listeners?.TryRemove(childListener);
 }