对下面注释的回复
你的函数也没用,因为 WinNT 32 内核至少以约 10+ 毫秒 (1,000 微秒) 的频率运行,这使得 usleep() 无用,因为 usleep 使用系统提供的 C 函数 (在本例中为 kernel32.dll)。
您需要使用一个不依赖于内核的函数,而是使用专门用于精确测量的函数。
<?php
function usleep_win( $micro_seconds )
{
if ( @function_exists( "socket_create" ) && @function_exists( "socket_select" ) )
{
$false = NULL;
$socket = array( socket_create( AF_INET, SOCK_RAW, $false ) );
socket_select( $false, $false, $socket, 0, $micro_seconds );
return true;
}
else
{
return false;
}
}
?>
此函数将允许您休眠指定微秒的时间,尽管我测量到它偏差约 5 微秒。
同样,这主要取决于您系统中的硬件。如果您_确实_需要精确到< 10 微秒,则不应使用 WinNT!