マルチメディア タイマーについて

[このページに関連付けられている機能である マルチメディア タイマーは、従来の機能です。 マルチメディア クラス スケジューラ サービスに置き換わりました。 マルチメディア クラス スケジューラ サービスは、Windows 10とWindows 11用に最適化されています。 可能であれば、新しいコードでマルチメディア タイマーではなくマルチメディア クラス スケジューラ サービス使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

マルチメディア タイマー サービスを使用すると、アプリケーションはハードウェア プラットフォームで可能な限り最大の解像度 (または精度) でタイマー イベントをスケジュールできます。 これらのマルチメディア タイマー サービスを使用すると、他のタイマー サービスよりも高い解像度でタイマー イベントをスケジュールできます。

これらのタイマー サービスは、高解像度のタイミングを必要とするアプリケーションに役立ちます。 たとえば、MIDI シーケンサーでは、MIDI イベントの速度を 1 ミリ秒以内に維持する必要があるため、高解像度タイマーが必要です。

高解像度のタイミングを使用しないアプリケーションでは、マルチメディア タイマー サービスの代わりに SetTimer 関数を使用する必要があります。 SetTimer によって提供されるタイマー サービスはメッセージ キューにメッセージWM_TIMER投稿しますが、マルチメディア タイマー サービスはコールバック関数を呼び出します。 待機可能タイマーを必要とするアプリケーションでは、 CreateWaitableTimer 関数を 使用する必要があります。