2013-07-02 31 views
0

我正在執行備份程序我已經完成了GUI。現在我想要做功能需求。每個備份都可以有計劃。每個星期日或星期一都有預定義的設置,但用戶也可以指定他自己的時間表。爲備份程序執行調度程序

因爲我從來沒有做過這樣的事情,所以我想知道一個好的方法是每x個小時或幾天運行一次備份。我正在考慮使用線程或寫一個服務,但這兩個字段對我來說都是全新的。這裏最好的方法是什麼?

+0

備份程序是Web應用程序還是Winform? – user2323308

+0

不要重新發明輪子:http://quartznet.sourceforge.net/ –

回答

0

如果線程開發和服務開發都是全新的,那麼我認爲你會努力以有用的方式實現這一點。即使如此......

調度程序類型的應用程序最好作爲服務運行,否則您需要用戶登錄才能運行應用程序。服務獨立於登錄的用戶運行。

但是,由於這個原因,服務沒有用戶界面,因此您的GUI需要將計劃詳細信息打包到某個配置文件中,然後將服務發送給重新加載該配置文件,以便該服務知道該做什麼以及該做什麼。

該服務通常會產生一個工作線程來完成幾乎所有工作,並且該工作線程需要能夠響應正在關閉的服務(請參閱AutoResetEvent以瞭解如何在線程間完成此操作)。然後,線程將等待,直到事件或適當的時間到達,然後做任何事情。

這些都不是很複雜,但我建議你先做一些深入的多線程編程。

+0

好吧,所以我有點理解你的帖子,不清楚的是服務怎麼知道該怎麼做?在我的程序中,可以說我有一個將當前時間寫入文件的函數。但是,如果我沒有登錄並且沒有執行該程序,該服務如何知道該功能的外觀和工作原理?或者我可以在沒有任何用戶登錄的情況下從服務執行程序? – LeonidasFett

+0

你可以在沒有任何人登錄的情況下從服務中執行程序。如果它執行的程序有一個用戶界面,那麼它將遇到問題,但是如果它只是默默地做某事,那麼這將工作正常。 – 2013-07-02 10:15:01