private void ExecuteEvent(CallBackEvent c, CallBackEventQueue tmpQ) { if (c.Enabled) { c.Enabled = false; switch (c.Type) { case CallBackType.ClearQueue: this._eventQueue.Clear(); break; case CallBackType.ScriptExecution: this.Execute(c.Source); break; case CallBackType.UserCallback: this.ExecuteCallBack(c.Function, c.Parameters); break; case CallBackType.TimeOut: this.ExecuteCallBack(c.Function); break; case CallBackType.Interval: c.Enabled = true; this.ExecuteCallBack(c.Function); break; } } this._eventQueue.RemoveTopBecauseProcessed(c, true); if (tmpQ != null) { tmpQ.RemoveTopBecauseProcessed(c, false); } }
public CallBackEventQueue Clone() { lock (obj) { var q = new CallBackEventQueue(); foreach (var e in _queue) { _queue.Add(e); } return(q); } }
public CallBackEventQueue CloneEventWithDelay() { lock (obj) { var q = new CallBackEventQueue(); foreach (var e in _queue) { if (e.Delay > 0 && e.Enabled) { q.EnqueueNotSafe(e); } } return(q); } }
public CallBackEventQueue GetEventsWithNoDelay() { lock (obj) { var q = new CallBackEventQueue(); foreach (var e in _queue) { if (e.Delay == 0 && e.Enabled) { q.EnqueueNotSafe(e); } } return(q); } }