예제 #1
0
            public TimeOutCmd(QSystemTimer qTimer, string name, DateTime at, IQHsm hsm, IQEvent ev, TimeOutType timeOutType)
            {
                TimeSpan duration = new TimeSpan(0);

                _Time = at;
                DateTime now = DateTime.Now;

                if (at > now)
                {
                    duration = at - now;
                }
                Init(qTimer, name, duration, hsm, ev, timeOutType);
            }
예제 #2
0
            protected void Init(QSystemTimer qTimer, string name, TimeSpan duration, IQHsm hsm, IQEvent ev, TimeOutType timeOutType)
            {
                _QTimer      = qTimer;
                _Name        = name;
                _Hsm         = hsm;
                _Event       = ev;
                _TimeOutType = timeOutType;
                if (duration.TotalMilliseconds == 0)
                {
                    _TimeOutType = TimeOutType.Single;
                    _Timer_Elapsed(this, null);
                    return;
                }

                double ms         = duration.TotalMilliseconds;
                double msInterval = ms > 0 ? ms : TimeSpan.MaxValue.TotalMilliseconds;

                _Timer          = new System.Timers.Timer(msInterval);
                _Timer.Elapsed += new System.Timers.ElapsedEventHandler(_Timer_Elapsed);
                _Timer.Enabled  = ms > 0;

                _Principal = System.Threading.Thread.CurrentPrincipal;
            }
예제 #3
0
 public TimeOutCmd(QSystemTimer qTimer, string name, TimeSpan duration, IQHsm hsm, IQEvent ev, TimeOutType timeOutType)
 {
     Init(qTimer, name, duration, hsm, ev, timeOutType);
 }
예제 #4
0
            protected void Init(QSystemTimer qTimer, string name, TimeSpan duration, IQHsm hsm, IQEvent ev, TimeOutType timeOutType)
            {
                _QTimer = qTimer;
                _Name = name;
                _Hsm = hsm;
                _Event = ev;
                _TimeOutType = timeOutType;
                double ms = duration.TotalMilliseconds;
                double msInterval = ms > 0 ? ms : TimeSpan.MaxValue.TotalMilliseconds;
                _Timer = new System.Timers.Timer (msInterval);
                _Timer.Elapsed += new System.Timers.ElapsedEventHandler(_Timer_Elapsed);
                _Timer.Enabled = ms > 0;

                _Principal = System.Threading.Thread.CurrentPrincipal;
            }
예제 #5
0
 public TimeOutCmd(QSystemTimer qTimer, string name, DateTime at, IQHsm hsm, IQEvent ev, TimeOutType timeOutType)
 {
     TimeSpan duration = new TimeSpan (0);
     _Time = at;
     DateTime now = DateTime.Now;
     if (at > now)
     {
         duration = at - now;
     }
     Init (qTimer, name, duration, hsm, ev, timeOutType);
 }
예제 #6
0
 public TimeOutCmd(QSystemTimer qTimer, string name, TimeSpan duration, IQHsm hsm, IQEvent ev, TimeOutType timeOutType)
 {
     Init (qTimer, name, duration, hsm, ev, timeOutType);
 }