| 关键词: nbsp constant busySpan use startTime idleSpan INTERVAL radian GetTickCount Win32 |
#!/usr/bin/perluse strict;use warnings;use Win32; use constant COUNT => 200;use constant SPLIT => 0.01;use constant PI => 3.14159265;use constant INTERVAL => 300;use constant TRUE => 1; main(); sub main {my @busySpan; # array of busy timesmy @idleSpan; # array of idle timesmy $half = INTERVAL / 2;my $radian = 0.0;my $i; for ($i = 0; $i < COUNT; $i++) { $busySpan[$i] = int(($half + (sin(PI * $radian) * $half))); $idleSpan[$i] = INTERVAL - $busySpan[$i]; $radian += SPLIT;} my $startTime = 0;my $j = 0;while (TRUE) { $j = int($j % COUNT); $startTime = Win32::GetTickCount(); while ((Win32::GetTickCount() - $startTime) <= $busySpan[$j]) {}; Win32::Sleep($idleSpan[$j]); $j++;} return 0; } 来至:http://www.shineyouth.com/thread-240-1-1.html |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|