对下面笔记的回复
你的函数也毫无用处,因为 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 了!