2016-04-28 14 views
0

を設定します。configファイルでこれらの値に基づいてタスクのスケジューリングは、私は次の設定で設定ファイル持って

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

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

を、私は私のC#プログラムで自動的にジョブをスケジュールする必要があります。私はこのコードを試してみましたが、それはエラーがスローされます:

When converting string to datetime, parse the string to take the date before putting each variable into DateTime object

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); 
} 

任意の助けをいただければ幸いです。ありがとう。

答えて

0

.configと同じ値をとり、TimeSpanとして解析できます。

startTimeが16時間30分

に等しいTimeSpanようになります

var startTime = TimeSpan.Parse(ConfigurationManager.AppSettings.Get("ScheduledTime")); 

(私はその周りにいくつかの検証を入れて、多分AppSettingsから直接読み取るが、それはまた別の話だではないと思います。)

次にできること

daily.StartBoundary = DateTime.Today + startTime; 
関連する問題