Esempio n. 1
0
        ///// <summary>
        ///// 建構式,必須手動執行Run()方法,流程才會開始跑,另一個建構式ActionTask(TaskRunType type, int interval)會執行Run()。
        ///// </summary>
        //public ActionTask()
        //{
        //    isRunning = false;
        //    totalTask = new List<ActionItem>();
        //    taskInThread = new List<ActionItem>();
        //}

        /// <summary>
        /// 建構式,會執行Run()。
        /// </summary>
        public ActionTask(TaskRunType type, int interval)
        {
            isRunning    = false;
            totalTask    = new List <ActionItem>();
            taskInThread = new List <ActionItem>();
            this.Run(type, interval);
        }
Esempio n. 2
0
        /// <summary>
        /// Runs the task.
        /// </summary>
        /// <param name="type">
        /// <para>TaskRunType.Single: Thread只輪詢一次TaskList就停止,必須自己TurnOn(item)。[用法待驗證]</para>
        /// <para>TaskRunType.Cycle:Thread會一直輪詢TaskList,輪詢期間必須自己手動TurnOn(item)或TurnOff(item)。</para>
        /// <para>TaskRunType.Sequence:Thread只輪詢一次TaskList就停止,程式會依照Add的時間自動TurnOn(item)。[用法待驗證]</para>
        /// </param>
        /// <param name="interval">延遲執行時間.</param>
        public void Run(TaskRunType type, int interval)
        {
            this.interval = interval;
            switch (type)
            {
            //case TaskRunType.Once:
            //    onceTaskThread = new Thread(new ParameterizedThreadStart(delegate { singleRun(interval); }));
            //    onceTaskThread.IsBackground = true;
            //    onceTaskThread.Start();
            //    break;

            case TaskRunType.Cycle:
                if (cycleTaskThread != null)
                {
                    if (cycleTaskThread.IsAlive)
                    {
                        return;
                    }
                }
                cycleTaskThread = new Thread(new ParameterizedThreadStart(delegate { cycleRun(interval); }));
                cycleTaskThread.IsBackground = true;
                cycleTaskThread.Start();
                break;

                //case TaskRunType.Sequence:
                //    sequenceTaskThread = new Thread(new ParameterizedThreadStart(delegate { sequenceRun(interval); }));
                //    sequenceTaskThread.IsBackground = true;
                //    sequenceTaskThread.Start();
                //    break;
            }
        }
Esempio n. 3
0
        public static ApiResult <object> TaskBeginRunLog(int taskId, string runGuid, TaskRunType runType)
        {
            var v = SdkCore.InvokeApi <object>(ConfigConst.API_SYSTEM_BEGINRUNLOG, new
            {
                taskId  = taskId,
                runGuid = runGuid,
                runType = (int)runType,
                time    = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
            });

            return(v);
        }