如何将 Windows TaskScheduler RunDurationFor 更改为无限期
How to change WindowTaskScheduler RunDurationFor to Indefinitely
我有以下方法使用 ASquare.WindowsTaskScheduler 为 Windows 创建 TaskScheduler,它按预期工作。
public bool CreateTaskScheduler()
{
var file = $"{Setting.GetDirectory()}\{Setting.GetSpacename()}.exe";
var response = WindowTaskScheduler
.Configure()
.CreateTask(TaskName, file)
.RunDaily()
.RunEveryXMinutes(5)
.Execute();
if (response?.ErrorMessage != null)
{
System.Console.WriteLine(response?.ErrorMessage);
}
return response != null && response.IsSuccess;
}
现在要求有变化,我需要将 Duration 时间更改为 Indefinitely。
所以我尝试在代码中添加以下行:
.RunDurationFor(TimeSpan.MaxValue)
有效,但最长时间为 168 分钟,我搜索了一下,发现此 answer and this 试图在 .RunDurationFor
内更改 TimeSpan
以下内容:
尝试 1 new TimeSpan(0, 0, 0, 0, -1)
尝试 2 new TimeSpan(0, 0, 0, 0, Timeout.Infinite)
尝试 3 TimeSpan.FromMilliseconds(-1)
尝试 4 new TimeSpan(0, 23, 0, 0, 0)
当我运行 代码只尝试创建任务 Task Scheduler 到 23 小时。但是尝试 1、2 和 3 没有 return 任何异常但没有创建任务计划程序。
我的问题,知道如何在里面写什么 .RunDurationFor(//what to write here)
才能有效地创建无限期吗?
经过数小时的尝试和失败。我假设 ASquare.WindowsTaskScheduler 有错误或未更新。当然,如果有人找到了 ASquare 的解决方案,我仍然会给出一个合适的答案,但在此之前,这是我的替代解决方案:
我已经安装了 TaskScheduler 2.8 nuget 包,它可以按照我想要的方式使用以下代码:
public void CreateTaskScheduler()
{
var file = $"{Setting.GetDirectory()}\{Setting.GetSpacename()}.exe";
TaskService ts = new TaskService();
TaskDefinition td = ts.NewTask();
Trigger trigger = new DailyTrigger();
trigger.Repetition.Interval = TimeSpan.FromMinutes(5);
td.Triggers.Add(trigger);
td.Actions.Add(new ExecAction(file, null, null));
ts.RootFolder.RegisterTaskDefinition(TaskName, td);
}
因此 Indefinitely
持续时间是此代码的默认值。
这是我想要的结果的快照:
希望对您有所帮助。
我有以下方法使用 ASquare.WindowsTaskScheduler 为 Windows 创建 TaskScheduler,它按预期工作。
public bool CreateTaskScheduler()
{
var file = $"{Setting.GetDirectory()}\{Setting.GetSpacename()}.exe";
var response = WindowTaskScheduler
.Configure()
.CreateTask(TaskName, file)
.RunDaily()
.RunEveryXMinutes(5)
.Execute();
if (response?.ErrorMessage != null)
{
System.Console.WriteLine(response?.ErrorMessage);
}
return response != null && response.IsSuccess;
}
现在要求有变化,我需要将 Duration 时间更改为 Indefinitely。
所以我尝试在代码中添加以下行:
.RunDurationFor(TimeSpan.MaxValue)
有效,但最长时间为 168 分钟,我搜索了一下,发现此 answer and this .RunDurationFor
内更改 TimeSpan
以下内容:
尝试 1 new TimeSpan(0, 0, 0, 0, -1)
尝试 2 new TimeSpan(0, 0, 0, 0, Timeout.Infinite)
尝试 3 TimeSpan.FromMilliseconds(-1)
尝试 4 new TimeSpan(0, 23, 0, 0, 0)
当我运行 代码只尝试创建任务 Task Scheduler 到 23 小时。但是尝试 1、2 和 3 没有 return 任何异常但没有创建任务计划程序。
我的问题,知道如何在里面写什么 .RunDurationFor(//what to write here)
才能有效地创建无限期吗?
经过数小时的尝试和失败。我假设 ASquare.WindowsTaskScheduler 有错误或未更新。当然,如果有人找到了 ASquare 的解决方案,我仍然会给出一个合适的答案,但在此之前,这是我的替代解决方案:
我已经安装了 TaskScheduler 2.8 nuget 包,它可以按照我想要的方式使用以下代码:
public void CreateTaskScheduler()
{
var file = $"{Setting.GetDirectory()}\{Setting.GetSpacename()}.exe";
TaskService ts = new TaskService();
TaskDefinition td = ts.NewTask();
Trigger trigger = new DailyTrigger();
trigger.Repetition.Interval = TimeSpan.FromMinutes(5);
td.Triggers.Add(trigger);
td.Actions.Add(new ExecAction(file, null, null));
ts.RootFolder.RegisterTaskDefinition(TaskName, td);
}
因此 Indefinitely
持续时间是此代码的默认值。
这是我想要的结果的快照:
希望对您有所帮助。