旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【C#】DispatcherTimerを即起動させる

10秒毎に○○したいという時DispatcherTimerを使うわけですが、Startメソッドを呼んで 10秒経ってからイベントが開始されます。そうではなくて、Startメソッドを呼んだ時に イベント開始となってほしかったのですが、以下のやり方でOKです。

// Intervalを0に指定で即起動する
timer.Interval = new TimeSpan(0, 0, 0);
timer.Start();

void timer_Tick(object sender, EventArgs e)
{
    // ここで本来の間隔に指定しなおす
    ((Timer)sender).Interval = new TimeSpan(0, 0, 10);
}

stackoverflow.com