public void SendDelayedEvents(EventDelayCategory category) { List <EventArgs> delayedEvents; if (m_delayedEvents.TryGetValue(category, out delayedEvents)) { foreach (var eventArgs in delayedEvents) { SendEventImmidiate(eventArgs); } } }
public void SendEvent <T>(T eventArgs, EventDelayCategory delayCategory = EventDelayCategory.Immidiate) where T : EventArgs { if (delayCategory == EventDelayCategory.Immidiate) { SendEventImmidiate(eventArgs); } else { var delayEventList = m_delayedEvents[delayCategory]; if (delayEventList == null) { delayEventList = new List <EventArgs>(); m_delayedEvents[delayCategory] = null; } delayEventList.Add(eventArgs); } }