.NET Frameworkのタイマについて
.NET Frameworkには、複数のタイマクラスが存在する。
タイマクラス | 名称 | 特徴 |
---|---|---|
System.Timers.Timer クラス | サーバベースタイマ | サーバベースタイマは、マルチスレッド環境でワーカスレッドと共に使用するようにデザインされている。 サーバベースタイマはWindowsタイマとは異なるアーキテクチャを使用するため、Windowsタイマよりも高い精度を実現できる。 処理は .NET Framework が管理する ThreadPool にキューイングされて実行されるので、スレッドタイマと同様にマルチスレッドによる並列処理が可能である。 |
System.Threading.Timer クラス | スレッドタイマ | スレッドタイマはメッセージループを必要としないので、コンソールアプリケーションのように Windowメッセージを受け取らないスレッドでの使用に適している。 処理は .NET Framework が管理する ThreadPool にキューイングされて実行されるので、マルチスレッドによる並列処理が可能である。 |
System.Windows.Forms.Timer クラス | Windows タイマ | Windowsタイマは、処理に UI スレッドを使用するシングルスレッド環境用にデザインされている。 Windows のタイマの精度は、55ミリ秒に制限されている。 動作にはメッセージループが必要。(コンソールアプリケーションでも使用可能) |
System.Web.UI.Timer クラス | ASP.NET AJAX タイマ | ASP.NET AJAX タイマは、Web アプリケーションが非同期または同期に Web ページのポストバックを行うために使用する。 Web サーバへのポストバックを発生させる処理周期の精度は、ブラウザ上で実行している ECMAScript (JavaScript) window.setTimeout 関数の精度に依存する。 |