timeBeginPeriod 関数 (timeapi.h)

timeBeginPeriod 関数は、定期的なタイマーの最小解像度を要求します。

構文

MMRESULT timeBeginPeriod(
  UINT uPeriod
);

パラメーター

uPeriod

アプリケーションまたはデバイス ドライバーの最小タイマー解像度 (ミリ秒単位)。 値を小さくすると、より高い (より正確な) 解像度が指定されます。

戻り値

成功 した場合はTIMERR_NOERROR を返 uPeriod で指定された解像度が範囲外の場合はTIMERR_NOCANDOを返します。

注釈

タイマー サービスを使用する直前にこの関数を呼び出し、タイマー サービスの使用が完了した直後に timeEndPeriod 関数を呼び出します。

timeBeginPeriod の各呼び出しと timeEndPeriod の呼び出しを照合し、両方の呼び出しで同じ最小解像度を指定する必要があります。 アプリケーションは、各呼び出しが timeEndPeriod の呼び出しと一致している限り、複数 の timeBeginPeriod 呼び出しを行うことができます。

バージョン 2004 Windows 10より前のバージョンでは、この関数はグローバル Windows 設定に影響します。 すべてのプロセスで、Windows では、任意のプロセスによって要求された最小値 (つまり、最高の解像度) が使用されます。 Windows 10 バージョン 2004 以降では、この関数はグローバル タイマー解決に影響しなくなりました。 この関数を呼び出すプロセスの場合、Windows では、任意のプロセスによって要求された最小値 (つまり、最高の解像度) が使用されます。 この関数を呼び出していないプロセスの場合、Windows は既定のシステム解像度よりも高い解像度を保証しません。

Windows 11以降、ウィンドウ所有プロセスがエンド ユーザーに完全に隠された、最小化された、またはその他の方法で目に見えない、または聞き取れなくなる場合、Windows は既定のシステム解像度よりも高い解像度を保証しません。 この動作の詳細については、「 SetProcessInformation 」を参照してください。

解像度を高く設定すると、待機関数のタイムアウト間隔の精度が向上します。 ただし、スレッド スケジューラはタスクをより頻繁に切り替えるので、システムの全体的なパフォーマンスを低下させることもできます。 高解像度では、CPU 電源管理システムが省電力モードに入らないようにすることもできます。 解像度を高く設定しても、高解像度パフォーマンス カウンターの精度は向上しません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー timeapi.h (Windows.h を含む)
Library Winmm.lib
[DLL] Winmm.dll

こちらもご覧ください

マルチメディア タイマー関数

マルチメディア タイマー