2013-04-22 110 views
1

我正在尝试创建一个计划任务(使用计划的任务包装)每3小时触发一次。我每天都会安装任务,但在完成文档后无法完成任务,请每隔几个小时运行一次。也不太了解LogonType。任何人都可以让我知道我要去哪里吗?计划任务援助请

 private void button1_Click(object sender, EventArgs e) 
    { 
     using (TaskService ts = new TaskService()) 
     { 
      var androback = ts.GetTask("Andro_Inc_Backup"); 
      bool taskExists = androback != null; 
      if (taskExists) 
      { 
       MessageBox.Show("Andromeda incremental backup task already installed"); 
      } 
      else 
      { 
       TaskDefinition td = ts.NewTask(); 
       td.RegistrationInfo.Description = "Incremental Backup"; 
       td.Principal.LogonType = TaskLogonType.ServiceAccount; 
       td.Triggers.Add(new DailyTrigger { DaysInterval = 1 }); 
       td.Actions.Add(new ExecAction("C:\\Rameses\\Program\\Inc_Cloud_Backup.exe", null)); 
       const string taskname = "Inc_Backup"; 
       ts.RootFolder.RegisterTaskDefinition(taskname, td); 
       MessageBox.Show("Incremental Backup Task Installed"); 
      } 
     } 
    } 

回答

0

我相信你正在寻找的dailyTrigger.Repetition.Interval财产。

DateTime datetime = DateTime.Today; 
DateTime startDateTime = new DateTime(datetime.Year, datetime.Month, datetime.Day, 0, 0, 0); 
DailyTrigger dailyTrigger = new DailyTrigger { StartBoundary = startDateTime, Enabled = true, DaysInterval = 1 }; 
dailyTrigger.Repetition.Interval = TimeSpan.FromHours(23); 
dailyTrigger.Repetition.Interval = TimeSpan.FromHours(3); 
td.Triggers.Add(dailyTrigger); 

您可以使用每周触发样品上codeplex为它增加了一个触发器,从明天开始,将每隔一周火上周一和周六重复每10分钟以下11个小时的参考

其他示例是here