2017-01-03 47 views
-1

我在Web應用程序中工作,其中需要根據數據庫中的記錄數動態創建計時器。我能夠做到這一點,但問題是我無法確定哪個計時器正在引發滴答事件。動態創建計時器並確定哪個計時器正在引發滴答事件

下面是上我的工作示例代碼:

Timer[] timers = new Timer[Wavcount]; 
for (int i=0;i<Wavcount;i++) { 
    Timer t1 = new Timer(); 
    t1.Interval = 1000; 
    t1.Elapsed += new ElapsedEventHandler(SomeStaticMethod); 
    t1.Start(); 
} 

private static void SomeStaticMethod(object sender, ElapsedEventArgs e) { 
    Timer t1 = (Timer)sender; 
    duration = duration + 1; 
} 
+0

你是什麼意思你不能?你只是做了:'定時器t1 =(定時器)發件人' –

+0

檢查它在t1對象 –

回答

0

所以,你需要一些每個定時器。由於計時器本身並沒有任何可以使用的,你可以通過在lambda函數包裹的電話直接提供所需的信息,被調用的函數:

Timer[] timers = new Timer[Wavcount]; 
for (int i=0; i < Wavcount; i++) 
{ 
    Timer t1 = new Timer(); 
    t1.Interval = 1000; 
    t1.Elapsed += (s, e) => SomeStaticMethod(s as Timer, e.SignalTime, "Timer " + i); 
    t1.Start(); 
} 

private static void SomeStaticMethod(Timer timer, DateTime signalTime, string timerName) 
{ 
    Console.WriteLine(timerName + " fired at " + signalTime); 
} 
相關問題