2011-07-10 96 views
1

以一定間隔執行自定義操作(應用程序級別)的最佳體系結構是什麼?及時執行操作

  • 定義一個靜態類,在其中定義一個定時器,並設置間隔。在定時器的tick事件中執行操作:看起來有點髒並且不可靠。

  • 定義一個windows服務,處理服務中的操作:可靠,但需要更多的工作,最好有一個簡單的解決方案和更少的代碼行。此外,這需要訪問主機系統(如果您在共享主機上,則不適用)。

是否有任何特定的設計模式被認爲是這類工作的最佳實踐?

+0

如果你是託管的,唯一的方法是依靠頁面點擊 - 你不會真的能夠有準確的計時器。 –

回答

2

創建控制檯應用程序並使用Windows任務計劃程序。

1

(1)解決方案的一個嚴重問題是,如果PC重新啓動,在幾天後關閉/切換是您需要重新啓動您的應用程序。

void InstallMeOnStartUp() 
    { 
     try 
     { 
      Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
      Assembly curAssembly = Assembly.GetExecutingAssembly(); 
      key.SetValue(curAssembly.GetName().Name, curAssembly.Location); 
     } 
     catch (Exception ex) 
     { 
      // 
     } 
    } 

在啓動時運行安裝。使用這種組合可以爲您的應用程序增加更多的「可靠性」+更容易的調試然後服務+更容易的設置然後服務==更容易維護然後服務。

問候。