2010-01-19 49 views
1

我的數據庫中有「約會」事件列表,例如下午3點等,他們有不規則的間隔,如15分鐘後,30分鐘後和25分鐘後。一種方法是,我運行一個線程/計時器,每分鐘檢查數據庫是否是下一次約會的分鐘或不..我想要一些其他機制,我可以觸發警報/事件/行動在下一次保存時間是在我的數據庫...如何做到這一點...C#非週期性事件生成

+1

我一直把它看作「C#壯陽藥事件生成」:-P – 2010-01-19 22:03:26

回答

1

獲取在數據庫中的下一個約會的日期/時間,從DateTime.Now減去爲了得到一個時間跨度,然後使用該時間跨度來啓動一次計時器,與此類似:

class MainClass 
{ 
    public static void FireTimerAt(DateTime next) 
    { 
     TimeSpan waitTime = next - DateTime.Now; 

     new Timer(delegate(object s) { 
         Console.WriteLine("{0} : {1}", 
         DateTime.Now.ToString("HH:mm:ss.ffff"), s); 
        } 
       , null, waitTime, new TimeSpan(-1)); 
    } 
} 
2

你應該看看Quartz.NET

Features of Quartz.Net

Quartz.NET可以運行嵌入式另一自由站立應用

+0

我需要在C#中實現它,在我的應用程序中,其他獨立或任何其他類型的系統都不會工作...... – Moon 2010-01-19 21:47:21

+0

Quartz.NET也可以運行在你的應用程序中,因爲它是一個調度庫。 – 2010-01-30 10:07:29

0

Timer Class

內提供用於在指定的時間間隔執行 方法的機構。這個 類不能被繼承。