///// <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); }
/// <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; } }
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); }