邏輯

2012-07-16 94 views
-3

使用窗口服務的C#我想根據我的配置標籤運行的服務,其實我會在這裏設定值的app.config中的三個標籤下面提到邏輯

<add key ="FIREHOST_TIME" value ="5" ></add> 
<add key ="SETDAYS" value ="3" ></add> 
<add key ="RUN_NOW" value ="1" ></add> <!-- 0=no, 1=yes--> 

如果假設RUN_NOW值是1,

當服務啓動時,它現在要做的工作,併爲下一個實例它應該運行基於由SETDAYS標籤。

如果假設RUN_NOW值爲0,

當服務啓動時,它不應該這樣做,應該等待工作SETDAYS來,然後下一個實例應該爲每一套天標籤運行

這裏下面我已經粘貼代碼:

protected override void OnStart(string[] args) 
    { 
    DateTime tenAM = DateTime.Today.AddHours(FIREHOST_TIME); 



      if (DateTime.Now > tenAM) 
       tenAM = tenAM.AddDays(SETDAYS); 


      // calculate milliseconds until the next 10:00 AM. 
      int timeToFirstExecution = (int)tenAM.Subtract(DateTime.Now).TotalMilliseconds; 

      // calculate the number of milliseconds in 24 hours. 
      int timeBetweenCalls = (int)new TimeSpan(24, 0, 0).TotalMilliseconds; 

      TimerCallback methodToExecute = kickstart; 

      // start the timer. The timer will execute "ProcessFile" when the number of seconds between now and 
      // the next 10:00 AM elapse. After that, it will execute every 24 hours. 
      System.Threading.Timer timer = new System.Threading.Timer(methodToExecute, null, timeToFirstExecution, timeBetweenCalls); 


     } 

所以現在我不得不使用標籤幫助RUN_NOW和實現邏輯,請指教如何執行。

+0

的文檔你的問題是過高的水平,人們可能會發現很難在這裏你需要有更好的問題回答合乎邏輯的問題。 – 2012-07-16 11:44:34

回答

1

試試這個。檢查AppSettings

var yourAppKey = ConfigurationManager.AppSettings.Get("RUN_NOW"); 
         or 
var yourAppKey = ConfigurationManager.AppSettings["RUN_NOW"]; 
// do something with yourAppKey 
+0

如果未設置配置值,'ToString'方法是否會引發異常? – Kane 2012-07-16 11:44:58

+0

不需要ToString作爲AppSettings.Get返回String。訪問項目的另一種方式是AppSettings [「Run_Now」] – ZafarYousafi 2012-07-16 11:47:02

+0

@ravi我知道如何從app.config獲取代碼後面的代碼,我想知道上面的條件邏輯 – user1494292 2012-07-16 12:21:10