プログラムが開始されると、My timer 'Elapsed'イベントが2回発生します。 'Elapsed'イベントハンドラの唯一の割り当ては 'Main'メソッドにあります。私が間違っていることがありますか?C#コマンドラインプログラムでタイマ経過イベントが2回発生する
//class level clock
public static System.Timers.Timer Clock;
static void Main(string[] args)
{
Clock = new System.Timers.Timer();
Clock.Elapsed += new ElapsedEventHandler(Clock_Elapsed);
Clock.AutoReset = false;
Clock.Interval = timerInterval; //this needs to be in milliseconds!
Clock.Enabled = true;
//run infinite loop until q is pressed
while (Console.Read() != 'q')
{}
}
static void Clock_Elapsed(object sender, ElapsedEventArgs e)
{
Clock.Stop();
//do some stuff
Clock.Start();
}
UPDATE:
@ fparadis2が提供する自動リセットは、二回の発射を修正しました。基本的な問題は、イベントが2回発生するように、私のタイマー間隔が30000ミリ秒(30秒)ではなく30ミリ秒に設定されていることでした。
[timer fire twice]の可能な複製(http://stackoverflow.com/questions/4309254/timer-fire-twice) – user7116