【C#】简单的消息管理机制

来源:互联网 发布:纳斯达克100基金 知乎 编辑:程序博客网 时间:2024/06/02 04:14
public enum CustomEventType{    //事件列表}public delegate void EventCallback(object data = null);public class EventManager{    private static EventManager _instance;    public static EventManager instance{        get{            if(_instance == null){                _instance = new EventManager();            }            return _instance;        }    }    private static Dictionary<CustomEventType, List<EventCallback>> eventQueue     = new Dictionary<CustomEventType, List<EventCallback>>();    public static void AddListener(CustomEventType type, EventCallback callback){        if(!eventQueue.ContainsKey(type)){            eventQueue.Add(type, new List<EventCallback>());        }        if(!eventQueue[type].Contains(callback)){            eventQueue[type].Add(callback);        }    }    public static void RemoveListener(CustomEventType type, EventCallback callback){        if(eventQueue.ContainsKey(type)){            eventQueue[type].Remove(callback);        }    }    public static void PostEvent(CustomEventType type){        if(eventQueue != null && eventQueue.ContainsKey(type)){            List<EventCallback> callbacks = eventQueue[type];            for (int i = 0; i < callbacks.Count; i++) {                callbacks[i]();            }        }    }}