public static void ForEach <T>(WeakList <T> list, Action <T> callback) where T : class { if (list != null) { list.ForEach(callback); } }
public void Publish(TPub pub, Action <TSub> callback) { if (_InstanceSubscribers != null) { int pubHash = pub.GetHashCode(); WeakList <TSub> subs = null; if (_InstanceSubscribers.TryGetValue(pubHash, out subs)) { subs.ForEach(callback); if (subs.Count == 0) { _InstanceSubscribers.Remove(pubHash); } } } WeakListHelper.Notify(_ClassSubscribers, callback); }