C# 4.0 如何在Windows 2003任务计划程序中为任务创建无限期

C# 4.0 如何在Windows 2003任务计划程序中为任务创建无限期,c#-4.0,scheduled-tasks,windows-2003-webserver,C# 4.0,Scheduled Tasks,Windows 2003 Webserver,我试图创建无限期的任务。在Windows Server 2008上,如果我没有指定持续时间,则假定持续时间是无限的。但是,在Windows Server 2003上,必须指定持续时间(并且必须等于或大于间隔)。目前,如果要重复很长时间,我只是将任务的持续时间设置为一年 有没有办法在Windows Server 2003上指定不确定的持续时间? if (m_TimeInterval.m_Expire.Year < 2099) //xp and win7 max year is 2099

我试图创建无限期的任务。在Windows Server 2008上,如果我没有指定持续时间,则假定持续时间是无限的。但是,在Windows Server 2003上,必须指定持续时间(并且必须等于或大于间隔)。目前,如果要重复很长时间,我只是将任务的持续时间设置为一年

有没有办法在Windows Server 2003上指定不确定的持续时间?

if (m_TimeInterval.m_Expire.Year < 2099) //xp and win7 max year is 2099
    tTrigger.Repetition.Duration = m_TimeInterval.getDuration();
else if (!newVer) tTrigger.Repetition.Duration = m_TimeInterval.getInterval().Add(TimeSpan.FromDays(365));
tTrigger.Repetition.Interval = m_TimeInterval.getInterval();
tTrigger.Repetition.StopAtDurationEnd = true;
if(m_TimeInterval.m_Expire.Year<2099)//xp和win7最大年份为2099
tTrigger.repeation.Duration=m_TimeInterval.getDuration();
如果(!newVer)tTrigger.repeation.Duration=m_TimeInterval.getInterval().Add(TimeSpan.FromDays(365)),则为else;
tTrigger.repeation.Interval=m_TimeInterval.getInterval();
tTrigger.repeation.StopAtDurationEnd=true;
注:

  • 我正在使用任务调度器API添加这些任务定义
  • 间隔和持续时间是通过使用时间跨度来设置的
  • newVer
    为false,因为我使用的是任务调度器1.1,而不是1.2或更高版本
  • t触发器
    为TimeTrigger类型

你能用吗?

我最后用1-1-2099作为“不确定的”

你也可以用
TimeSpan.Zero
使任务无限

下面是一个简短的代码片段,演示如何在触发器上使用它:

Trigger triggerTask = Trigger.CreateTrigger(TaskTriggerType.Time);
triggerTask.StartBoundary = DateTime.Now.AddMinutes(3);
triggerTask.SetRepetition(new TimeSpan(0, 3, 0, 0, 0), TimeSpan.Zero);

创建一个单独的计划任务,其唯一目的是停止并重新启动您希望具有无限持续时间的任务,有效地重置持续时间如何?这是一个可能的解决方法,谢谢。虽然,停止和启动任务不会更新定义的一年的原始时间跨度,因此它必须删除并重新创建任务。描述在money上是正确的,但它看起来像是WPF基本元素类。服务本质上是控制台应用程序。