我的代码在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);
如果我等待预定的时间等等,任务开始但状态排队,即使我将电脑闲置了很长一段时间,程序也不会运行。
为什么我的任务会运行但空闲状态似乎永远不会满足?
我找到了关于Windows如何处理空闲状态的页面。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383561(v=vs.85).aspx
答案 0 :(得分:0)
除了空闲任务触发器之外,您还需要在任务定义中设置RunOnlyIfIdle
。