private T2 CallPriorityGroup(List <EventHandler> priorityGroup, T1 sender, T2 args, bool stoppable, ref bool stopped, bool cancelable, ref bool canceled) { foreach (EventHandler eh in priorityGroup.ToArray()) { eh.Invoke(sender, args); if (stoppable && !stopped && ((IStoppable)args).Stopped) { stopped = true; } if (cancelable && !canceled && ((ICancelable)args).Canceled) { canceled = true; } if (args.Disable) { priorityGroup.Remove(eh); if (OnUnregister != null) { OnUnregister.Invoke(this, new EventRegisterArgs(typeof(T1), typeof(T2), eh, false)); } args.Disable = false; } } return(args); }
public void UnregisterProtos(Guid key) { RTLog.Notify("AntennaManager: UnregisterProtos({0})", key); if (!mProtoAntennaCache.ContainsKey(key)) { return; } foreach (IAntenna a in mProtoAntennaCache[key]) { OnUnregister.Invoke(a); } mProtoAntennaCache.Remove(key); }
//**************************************************************************************************** // //**************************************************************************************************** public Instances(OnRegister onRegister, OnUnregister onUnregister) { m_onRegister = onRegister; m_onUnregister = onUnregister; }