mawasiの備忘録

忘れやすい自分の為のプログラムやその他諸々に関するメモ

C#の各種Timerについて

C#で提供されているTimerについて

 

1. System.Windows.Forms.Timerは同期処理

2. System.Threading.Timerは非同期処理

3. System.Timers.Timerは非同期処理

 

2. と3. は非同期処理なので、Timerに設定したイベント内の処理時間がタイマー間隔より長かった場合、複数スレッドが作成されることになる。

もしタイマーでシーケンシャルに処理されることを意図した処理なのであればLock処理してやる必要がある。

 

以下、System.Timers.Timerを使用したサンプル

 

参考記事

galife - C# の Timer 種類別 特徴 と 使い方