示例#1
0
        public static void Update(float dt)
        {
            for (int i = tasks.Count - 1; i >= 0; i--)
            {
                TimerTask task = tasks[i];

                if (task == null)
                {
                    tasks.RemoveAt(i);
                    continue;
                }

                task.Delay -= dt;

                if (task.Delay <= 0)
                {
                    try {
                        task.Fn?.Invoke();
                    } catch (Exception e) {
                        Log.Error(e);
                    }

                    tasks.RemoveAt(i);
                }
            }
        }
示例#2
0
        public static TimerTask Add(Action fn, float Delay)
        {
            if (Delay <= 0)
            {
                fn();
                return(null);
            }

            var t = new TimerTask(fn, Delay);

            tasks.Add(t);

            return(t);
        }
示例#3
0
 public static void Cancel(TimerTask task)
 {
     tasks.Remove(task);
 }