コード例 #1
0
        /// <summary>
        ///     Invoked when obj started
        /// </summary>
        protected override void OnStart()
        {
            base.OnStart();

            Scheduler          = new TimerScheduler(this);
            CoroutineScheduler = New <CoroutineScheduler>(new ObjArg(this));
            CoroutineScheduler.Start();

            if (_workingQueue != null ||
                _workingThread != null)
            {
                Logger.Ins.Fatal("AutoXService being start more than once");
                return;
            }

            _workingQueue  = new BlockingCollection <IJob>(QueueCapacity);
            _workingThread = new Thread(WorkingProcedure)
            {
                Name = "AutoXService", IsBackground = true
            };
            // use background thread
            // see http://msdn.microsoft.com/en-us/library/h339syd0.aspx

            _workingThread.Start();
            Logger.Ins.Debug("Auto logic service started!");
        }
コード例 #2
0
ファイル: Timer.cs プロジェクト: 591094733/Socket4Net
 /// <summary>
 /// Construct a new timer object.
 /// </summary>
 /// <param name="name">the timer's name</param>
 /// <param name="dueTime">when to begin this timer, in milliseconds.
 /// zero means start immediately</param>
 public Timer(string name, uint dueTime)
 {
     Name       = name;
     DueTime    = dueTime;
     _scheduler = GlobalVarPool.Ins.Service.Scheduler;
 }