1

我的代码在 Win 7 任务计划程序中成功创建了一个任务,设置了所有条件和触发器。下面的片段是设置空闲触发器,我可以在任务计划程序中看到它全部设置,所以我知道它创建它是正确的。如果我在任务计划程序上单击运行,程序会按预期启动,所以我知道该操作也是正确的。

Task.Settings.RunOnlyIfIdle = true;
Task.Settings.IdleSettings.StopOnIdleEnd = false;

// The amount of time that the computer must be in an idle state before the task is run.
Task.Settings.IdleSettings.IdleDuration = TimeSpan.FromMinutes(1);
// Value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur
Task.Settings.IdleSettings.WaitTimeout = TimeSpan.FromHours(2);

// Set up the Idle trigger.
trigger = Task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_IDLE);

如果我等待预定的时间等等,任务就会开始,但它会保持状态 Queued,即使我让电脑闲置了很长一段时间,程序也永远不会运行。

为什么我的任务运行但空闲条件似乎永远不会满足?

我发现这个页面是关于 Windows 如何处理空闲状态的。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa383561(v=vs.85).aspx

4

1 回答 1

0

RunOnlyIfIdle除了空闲任务触发器之外,您还需要任务定义中的设置。

于 2016-03-30T08:37:51.577 回答