2011-03-01 33 views
1

我已經看到了很多職位來配置每天/每週等時間表的Windows服務,但如果我想要一個不統一的時間表,我該如何管理Windows服務的角度?我有一個應用程序,我想在特定時間運行。以統一的時間表運行它不會對我有任何益處,只會浪費資源。我可以使用一些XML文件或Windows服務配置來配置它嗎?c#調度特定日期的窗口服務

+0

Windows任務調度程序不是最好的選擇嗎?只需創建一個正常的應用程序並按此方式安排。服務真的不是最好的方法(除非任務調度器本身就是一項服務) – 2011-03-01 17:28:53

+0

任務調度器仍然是一個統一的調度器或一次性調度器。我正在尋找的是一些我可以給出一組日期(非統一)的程序,並且它會啓動我的應用程序爲每個日期運行一次。 – Stevus 2011-03-01 17:35:26

回答

1

您有三種選擇。

  1. 看看Quartz.net

  2. 使用Windows調度。對於每個需要運行應用程序的日期/時間,只需要有一個不同的「時間表」。

  3. 寫你自己的。

+0

我看到的唯一簡單的方法就是製作一堆預定的一次性任務,所以2)。我找到了關於AT命令的一些信息。但我不知道如何指定日期和時間。你認爲完成3)有多容易? – Stevus 2011-03-01 17:45:25

0

這裏做到這一點這是一個混合的方法的東西的一種方式:

創建您想要的程序運行的日期和時間的文本文件。例如,它可能包含:

2011-03-01 
0100 
0312 
0815 
0945 
1340 

2011-03-02 
0220 
... 

然後,寫程序,做任何任務,它需要做的,它退出閱讀文件前做的最後一件事,找到下一個時間,它需要運行並通過發出AT命令,通過調用schtasks.exe或調用等效的Task Scheduler API函數來調度自己。

Task Scheduler API不適合膽小。我會建議尋找一個包裝。搜索「windows任務計劃程序C#」返回幾個。