2008-10-03 45 views
1

我正在使用.Net中的C#編寫簡單的調度程序。它所做的就是每分鐘在SQL Server數據庫的表上執行一次簡單的select語句(這不需要進行縮放或任何其他操作......數據庫沒有高負載)。這是我提出的實施方案:這是一個可接受的方式來在C#中做一個簡單的「調度程序」?

static void Main(string[] args) 
{ 
    while (true) 
    { 
     System.Threading.Thread.Sleep(timeout); // timeout is, say, 60000 
     CheckTable(); 
    } 
} 

可以嗎?什麼是更好的方法?

p.s.有人建議使用Windows窗體計時器類...但是這似乎是矯枉過正。

乾杯!

+0

這個問題是相關的:http://stackoverflow.com/questions/169332 – 2008-10-03 23:49:26

回答

4

雖然它在技術上是合法的,但您可能更適合使用計時器。他們沒有更多的代碼來設置,你可以讓運行時間來處理產生新的線程。如果你需要在另一個程序中再次使用它,它也會在定時器不會的情況下產生性能瓶頸。

雖然您需要使用計時器觸發事件​​,但計時器將添加更多代碼。

+0

這真的取決於你是否想要多個線程同時運行相同的過程。 – 2008-10-04 04:44:32

1

關閉。

  1. 這將運行每(1分鐘+時間調用proc)。也許這沒問題,也許沒有。如果不行,您需要減去運行所花費的時間。
  2. 你應該有一個try-catch塊。你不想因爲臨時的數據庫或網絡問題而完全死亡。
1

Quartz.net是一個很好的解決時間需求的方案。安裝起來非常簡單(在網站上有很好的教程),並且爲您提供比定時器更多的靈活性。 CronTrigger功能非常強大,並且易於配置。

相關問題