Exemplo n.º 1
0
    public static void AddListener(ESystemEventType enEventType, CSysEventCallback <System.Object> kHandler)
    {
        lock (mEventTable)
        {
            if (!mEventTable.ContainsKey(enEventType))
            {
                mEventTable.Add(enEventType, null);
            }

            mEventTable[enEventType] = (CSysEventCallback <System.Object>)mEventTable[enEventType] + kHandler;
        }
    }
Exemplo n.º 2
0
    public static void RemoveListener(ESystemEventType enEventType, CSysEventCallback <System.Object> kHandler)
    {
        lock (mEventTable)
        {
            if (mEventTable.ContainsKey(enEventType))
            {
                mEventTable[enEventType] = (CSysEventCallback <System.Object>)mEventTable[enEventType] - kHandler;

                if (mEventTable[enEventType] == null)
                {
                    mEventTable.Remove(enEventType);
                }
            }
        }
    }
Exemplo n.º 3
0
    public static void Invoke(ESystemEventType enEventType, System.Object arg1)
    {
        try
        {
            Delegate kDelegate;
            if (mEventTable.TryGetValue(enEventType, out kDelegate))
            {
                CSysEventCallback <System.Object> kHandler = (CSysEventCallback <System.Object>)kDelegate;

                if (kHandler != null)
                {
                    kHandler(arg1);
                }
            }
        }
        catch (Exception ex)
        {
        }
    }