動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

System.Timers.Timer + SynchronizingObject —コンポーネント風

出典: WinForms Timer 3兄弟の使い分け — System.Windows.Forms.Timer / System.Threading.Timer / System.Timers.TimerSystem.Timers.Timer + SynchronizingObject —コンポーネント風

System.Timers.Timer + SynchronizingObject —コンポーネント風 (csharp)#808a82d2d659
// ✅パターン3: System.Timers.Timer + SynchronizingObject(コンポーネント風)
using System.Timers;
 
public partial class DashboardForm : Form
{
    private System.Timers.Timer _timer;
 
    public DashboardForm()
    {
        InitializeComponent();
 
        _timer = new System.Timers.Timer(2000)// 2秒ごと
        {
            AutoReset = true,
            SynchronizingObject = this,   // ← Formを指定するとUIスレッド上で発火
        };
        _timer.Elapsed += Timer_Elapsed;
        _timer.Start();
    }
 
    private void Timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        // SynchronizingObject = thisのおかげでUIスレッド上で動く
        labelMetrics.Text = $"最終更新: {e.SignalTime:HH:mm:ss}";
        chartControl1.Refresh();
    }
 
    private void DashboardForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        _timer.Stop();
        _timer.Dispose();
    }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #808a82d2d659
  • lines: 33
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「System.Timers.Timer + SynchronizingObject —コンポーネント風」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ