Пример #1
0
        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);
            });
        }
Пример #2
0
        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);
        }
Пример #3
0
 public DependentTask SetTaskAction(TaskExecuteAction action)
 {
     TaskAction = action;
     return(this);
 }