public void Detach(string senderName, float percent, string eventName, XProgressHandler handler) { int eventId = this.PercentToEventId(percent); if (!this.mEvents.ContainsKey(eventId)) { return; } foreach (XProgressEvent evt in this.mEvents[eventId]) { if (evt.EventName == eventName && evt.Handler == handler) { this.mEvents[eventId].Remove(evt); } } if (this.mEvents[eventId].Count == 0) { this.mEvents.Remove(eventId); } }
public void Attach(string senderName, float percent, string eventName, XProgressHandler handler) { if (percent < 0 || percent > 1) { return; } if (handler == null) { return; } int eventId = this.PercentToEventId(percent); if (!this.mEvents.ContainsKey(eventId)) { this.mEvents[eventId] = new List <XProgressEvent>(); } XProgressEvent evt = new XProgressEvent(); evt.SenderName = senderName; evt.EventName = eventName; evt.Handler = handler; evt.Fired = false; this.mEvents[eventId].Add(evt); }