使用AppConfig设置进行任务计划

时间:2016-04-28 13:40:48

标签: c# task scheduler windows-scheduler

我有一个配置文件,其中包含以下设置:

<add key ="Mode" value ="Daily"/>

<add key="ScheduledTime" value="16:30"/>

根据配置文件中的这些值,我需要在C#程序中自动安排作业。我尝试过这段代码,但它会抛出一个错误:

  

将字符串转换为datetime时,解析字符串以获取日期   在将每个变量放入DateTime对象之前

TaskService ts = new TaskService()
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "RMATask";

if (ConfigurationManager.AppSettings.Get("Mode") == "Daily")
{
    DailyTrigger daily = new DailyTrigger();
    daily.StartBoundary = Convert.ToDateTime(DateTime.Today.ToShortDateString() + ConfigurationManager.AppSettings.Get("ScheduledTime"));
    daily.DaysInterval = 1;
    td.Triggers.Add(daily);
    td.Actions.Add(new ExecAction(@"C:/Bigdata/bigdatadev/Framework/ConsoleApplication1/bin/Debug/ConsoleApplication1.exe", null, null));
    ts.RootFolder.RegisterTaskDefinition(ConfigurationManager.AppSettings.Get("Tablename"), td);
}

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

您可以从.config获取相同的值并将其解析为var startTime = TimeSpan.Parse(ConfigurationManager.AppSettings.Get("ScheduledTime"));

startTime

这会使TimeSpan成为AppSettings等于16小时30分钟

(我对此进行了一些验证,甚至可能不直接从daily.StartBoundary = DateTime.Today + startTime; 阅读,但那是另一个故事。)

然后你可以做

{{1}}