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 |