C # как отключить определенные поля настроек в планировщике заданий - PullRequest
0 голосов
/ 16 октября 2018

Я создаю задачу Windows, используя Task Scheduler Managed Wrapper.Однако я не знаю, как снять флажки со следующих параметров на вкладке настроек:

  • Остановить задачу, если она выполняется дольше, чем

  • Если выполняемое задание не заканчивается по запросу, принудительно остановите его

image

Мой текущий код:

public static void createNewDailyTask(string taskName,string appPath, string description){

using (TaskService ts = new TaskService()) {

    Microsoft.Win32.TaskScheduler.Task t = ts.GetTask(taskName);
    if (t != null) return;

    TaskDefinition td = ts.NewTask();

    td.Principal.RunLevel = TaskRunLevel.Highest;

    td.RegistrationInfo.Description = description;

    TimeTrigger tt = new TimeTrigger();

    // trigger every 5 min
    tt.Repetition.Interval = TimeSpan.FromMinutes(5);

    // Add trigger to the task
    td.Triggers.Add(tt);

    td.Actions.Add(new ExecAction(appPath));

    // Register the task in the root folder
    ts.RootFolder.RegisterTaskDefinition(taskName, td);

    }

}

В классе TaskDefinition есть объект настроек.Однако я не смог найти соответствующие свойства, чтобы снять флажок с ранее упомянутыми параметрами.

1 Ответ

0 голосов
/ 16 октября 2018

Похоже, что эти флажки могут управляться свойствами TaskDefinition.Settings.ExecutionTimeLimit (типа String) и TaskDefintion.Settings.AllowHardTerminate (типа bool).

ExecutionTimeLimit задокументировано как строка снеобычный формат.Он говорит, что нужно использовать null или "PT0S", чтобы разрешить бесконечный запуск:

Количество времени, которое разрешено для выполнения задачи.Формат этой строки: PnYnMnDTnHnMnS, где nY - количество лет, nM - количество месяцев, nD - количество дней, T - разделитель даты / времени, nH - количество часов, nM - количество часов.количество минут, а nS - количество секунд (например, PT5M указывает 5 минут, а P1M4DT2H5M - один месяц, четыре дня, два часа и пять минут).Значение PT0S позволит заданию выполняться бесконечно.Если для этого параметра установлено значение Nothing, ограничение по времени выполнения бесконечно.

Источник: https://docs.microsoft.com/en-us/windows/desktop/TaskSchd/tasksettings-executiontimelimit

(TaskSettings документация )

Примечание: ExecutionTimeLimit также может быть TimeSpan.Если это так, используйте TimeSpan.Zero в качестве значения, чтобы отключить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...