timeBeginPeriod 函式 (timeapi.h)
timeBeginPeriod 函式會要求定期定時器的最低解析度。
語法
MMRESULT timeBeginPeriod(
UINT uPeriod
);
參數
uPeriod
應用程式或設備驅動器的定時器解析度下限,以毫秒為單位。 較低的值會指定較高的 (更精確的) 解析度。
傳回值
如果成功或TIMERR_NOCANDO uPeriod 中指定的解析度超出範圍,則傳回TIMERR_NOERROR。
備註
在使用定時器服務之前立即呼叫此函式,並在您使用定時器服務完成之後立即呼叫 timeEndPeriod 函式。
您必須比對 timeBeginPeriod 的每個呼叫與 timeEndPeriod 的呼叫,並在兩個呼叫中指定相同的最小解析度。 只要每個呼叫都與 timeEndPeriod 的呼叫相符,應用程式就可以進行多次 TimeBeginPeriod 呼叫。
在 Windows 10 2004 版之前,此函式會影響全域 Windows 設定。 對於所有進程,Windows 都會使用最低值 (,也就是任何進程要求的最高解析度) 。 從 Windows 10 版本 2004 開始,此函式不再影響全域定時器解析度。 對於呼叫此函式的進程,Windows 會使用最低值 (,也就是任何進程所要求的最高解析度) 。 對於未呼叫此函式的進程,Windows 不保證比預設系統解析度更高的解析度。
從 Windows 11 開始,如果視窗擁有程式變成完全遮蔽、最小化,或對終端使用者不可見或不可見,Windows 不保證比默認系統解析度更高的解析度。 如需此行為的詳細資訊 ,請參閱 SetProcessInformation 。
設定較高的解析度可以改善等候函式中超時時間間隔的精確度。 不過,它也可以降低整體系統效能,因為線程排程器會更頻繁地切換工作。 高解析度也可以防止 CPU 電源管理系統進入省電模式。 設定較高的解析度無法改善高解析度性能計數器的精確度。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | timeapi.h (包含 Windows.h) |
程式庫 | Winmm.lib |
Dll | Winmm.dll |