【问题标题】:How to Create Indefinite Duration for a Task in Windows 2003 Task Scheduler如何在 Windows 2003 任务计划程序中为任务创建无限持续时间
【发布时间】:2012-05-24 18:00:57
【问题描述】:

我正在尝试创建无限期的任务。在 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;

注意事项:

  • 我正在使用 Task Scheduler API 添加这些任务定义。
  • 使用 TimeSpan 设置间隔和持续时间。
  • newVer 是错误的,因为我使用的是 Task Scheduler 1.1 而不是 1.2 或更高版本
  • tTrigger 是 TimeTrigger 类型

【问题讨论】:

  • 如何创建一个单独的计划任务,其唯一目的是停止和重新启动您想要无限期持续的任务,有效地重置持续时间?
  • 这是一种可能的解决方法,谢谢。虽然,停止和启动任务不会更新定义的一年的原始时间跨度,因此它必须删除并重新创建任务。

标签: c#-4.0 scheduled-tasks windows-2003-webserver


【解决方案1】:

我最终使用 1-1-2099 作为“无限期”

【讨论】:

    【解决方案2】:

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

    这里有一个简短的代码 sn-p 来演示如何在触发器上使用它:

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

    【讨论】:

      【解决方案3】:

      你能用Duration.Forever.TimeSpan吗?

      【讨论】:

      • 描述是对的,但看起来这是一个 WPF 基元素类。服务本质上是控制台应用程序。
      猜你喜欢
      • 2011-06-27
      • 2011-08-04
      • 2010-10-21
      • 1970-01-01
      • 2014-12-28
      • 2015-09-13
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多