示例#1
0
        public IPTimedEvent CreateParallelTimer(string name, int timeoutDelay, Dictionary <string, object> args)
        {
            IPTimedEvent timedEvent = new IPTimedEvent(name, (double)timeoutDelay);

            timedEvent.Args    = args;
            timedEvent.OnFire += new IPTimedEvent.TimedEventFireDelegate(OnTimerCB);
            ParallelTimers.Add(timedEvent);
            return(timedEvent);
        }
示例#2
0
        public IPTimedEvent CreateTimer(string name, int timeoutDelay)
        {
            IPTimedEvent timedEvent = GetTimer(name);

            if (timedEvent == null)
            {
                timedEvent         = new IPTimedEvent(name, (double)timeoutDelay);
                timedEvent.OnFire += new IPTimedEvent.TimedEventFireDelegate(OnTimerCB);
                Timers.Add(name, timedEvent);
            }
            return(timedEvent);
        }
示例#3
0
        public void KillTimer(string name)
        {
            IPTimedEvent timer = GetTimer(name);

            if (timer == null)
            {
                return;
            }

            timer.Kill();
            Timers.Remove(name);
        }
示例#4
0
        /*public void OnTimerCB(IPTimedEvent evt) {
         *      if (Globals.Contains(evt.Name + "Callback")) {
         *              Invoke(evt.Name + "Callback", evt);
         *      }
         * }*/

        public void OnTimerCB(IPTimedEvent evt)
        {
            if (Globals.Contains(evt.Name + "Callback"))
            {
                try
                {
                    Engine.Operations.InvokeMember(Class, evt.Name + "Callback", evt);
                }
                catch (Microsoft.Scripting.ArgumentTypeException)
                {
                    this.Invoke(evt.Name + "Callback", new object[0]);
                }
                catch (Exception ex)
                {
                    Fougerite.Logger.LogError(Engine.GetService <ExceptionOperations>().FormatException(ex));
                }
            }
        }