如何在Windows 2003任务计划程序中为任务创建不确定的持续时间

问题描述:

我试图创建任务的时间不确定。在Windows Server 2008上,如果我没有指定持续时间,则认为持续时间是无限的。但是,在Windows Server 2003上,必须指定持续时间(并且等于或大于间隔)。目前,如果要重复很长时间,我只是将任务设置为一年。如何在Windows 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; 

注:

  • 我使用任务计划程序API添加这些任务定义。
  • 通过使用TimeSpans设置间隔和持续时间。
  • newVer是假的,因为我有任务计划1.1的工作,而不是1.2或更高
  • tTrigger的类型是TimeTrigger
+0

怎么样建立一个独立的计划任务,其唯一目的是停止和重新启动你想有一个无限期的任务,有效地重置持续时间? –

+0

这是一种可能的解决方法,谢谢。尽管停止和启动任务不会更新定义年份的原始时间范围,因此它必须删除并重新创建任务。 – PAULDAWG

最后我用2099年1月1日为“无限期”

+1

System.Threading.Timeout.InfiniteTimeSpan –

你可以使用Duration.Forever.TimeSpan的?

+0

描述对钱来说是正确的,但它看起来像是一个WPF基本元素类。服务主要是控制台应用程序 – PAULDAWG

您还可以使用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);