2017-01-03 7 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

を:

以下は、私が働いていたサンプルコードです。タイマー自体以来あなたはラムダ関数で呼び出しをラップすることによって呼び出される関数に直接必要な情報を提供することができ、使用することができます何も持っていません。

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); 
} 
関連する問題