public void ExecuteTask() { if (Internal == null) { return; } if (TaskAction == null) { Internal.bTaskRunning = false; Internal.bTaskFinished = true; Internal.bTaskFinishedSuccess = true; DependentTaskManager.Instance.OnTaskFinished(Internal.TaskRegionId, Internal.TaskName); return; } Internal.bTaskRunning = true; TaskAction.Invoke((bool outSuccess, string outExtraInfo, object outExtraObj) => { Internal.bTaskRunning = false; Internal.bTaskFinished = true; Internal.bTaskFinishedSuccess = outSuccess; Internal.bTaskExecuteExtraInfo = outExtraInfo; Internal.bTaskExecuteExtraObject = outExtraObj; // when task finished flush action TaskAction = null; DependentTaskManager.Instance.OnTaskFinished(Internal.TaskRegionId, Internal.TaskName); }); }
private static TaskBaseAction CreateTaskAction(Microsoft.Win32.TaskScheduler.Action action) { var taskAction = default(TaskBaseAction); switch (action.ActionType) { case TaskActionType.Execute: var executeAction = action as ExecAction; taskAction = new TaskExecuteAction { Arguments = executeAction.Arguments, Command = executeAction.Path, WorkingDirectory = executeAction.WorkingDirectory }; break; } if (taskAction != null) { taskAction.ID = action.Id; } return(taskAction); }
public DependentTask SetTaskAction(TaskExecuteAction action) { TaskAction = action; return(this); }