12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using System;
- using System.Collections.Generic;
- namespace kt
- {
- public class PermTempAction
- {
- public void Add(Action callback, bool is_temp = false)
- {
- if (callback != null)
- {
- this.CallBackFlagDic[callback] = is_temp;
- }
- }
- public void Remove(Action callback)
- {
- if (callback != null)
- {
- this.CallBackFlagDic.Remove(callback);
- }
- }
- public void Clear()
- {
- this.CallBackFlagDic.Clear();
- }
- public void Invoke()
- {
- List<Action> list = new List<Action>();
- foreach (KeyValuePair<Action, bool> keyValuePair in this.CallBackFlagDic)
- {
- Action key = keyValuePair.Key;
- if (keyValuePair.Value || key == null)
- {
- list.Add(key);
- }
- if (key != null)
- {
- key();
- }
- }
- for (int i = 0; i < list.Count; i++)
- {
- this.CallBackFlagDic.Remove(list[i]);
- }
- }
- private Dictionary<Action, bool> CallBackFlagDic = new Dictionary<Action, bool>();
- }
- }
|