如何使用TPL基於計劃運行任務。時間表將在xml中。如何安排任務在特定時間運行
我已經在這個環節 https://msdn.microsoft.com/en-us/library/dd997402.aspx
通過任務調度走了,但它並沒有告訴如何來指定它應該運行的時間什麼。
如何使用TPL基於計劃運行任務。時間表將在xml中。如何安排任務在特定時間運行
我已經在這個環節 https://msdn.microsoft.com/en-us/library/dd997402.aspx
通過任務調度走了,但它並沒有告訴如何來指定它應該運行的時間什麼。
Task.Delay
可能是你在找什麼。
但請記住,TPL的主要目的是解決並行性和併發性問題......任務調度被視爲管道 - 主要是實現細節。如果你的應用主要是關於調度,那麼你可能會更好的使用像Quartz.NET這樣的全面的作業調度框架。
看看微軟的Reactive Framework(NuGet「Rx-Main」)。它可以讓你做到這一點:
Observable
.Timer(new DateTimeOffset(2016, 4, 12, 12, 23, 16, TimeSpan.FromHours(-17)))
.Subscribe(x =>
{
/* Do stuff */
});
好的是,反應性框架與TPL很好地工作。
TPL是關於最大化可用資源。如果您希望某些任務在特定時間運行,爲什麼不直接啓用每分鐘啓動的[Timer](https://msdn.microsoft.com/en-us/library/system.timers.timer.aspx),請檢查如果時間安排在時間表上,並運行任務? – Martheen
另一種選擇是使用[Windows任務計劃程序](https://taskscheduler.codeplex.com/),因此您不需要其他服務/應用程序始終運行 – Martheen
您不能使用TPL 。任務並行庫與調度代碼或Windows任務的執行無關。這是關於多線程和並行執行的。 –