public void SubscribeToTimeAsPercentEvents(TimeAsPercentEventHandler newObserver) { if (!IsObserverTimeAsPercentInList(newObserver)) { m_timeEvents += new TimeAsPercentEventHandler(newObserver); m_timeEvents.Invoke(GetTimeAsPercent()); } }
private bool IsObserverTimeAsPercentInList(TimeAsPercentEventHandler newObserver) { if (m_timeEvents != null) { foreach (var existingHandler in m_timeEvents.GetInvocationList()) { if (Delegate.Equals(existingHandler, newObserver))//existingHandler == newObserver) //If it doesn't work use : if(objA.Method.Name == objB.Method.Name && objA.Target.GetType().FullName == objB.Target.GetType().FullName) OR Delegate.Equals(objA, objB) { return(true); } } } return(false); }