#include<windows.h> #include<stdlib.h> #include<math.h> const double split=0.01; const int COUNT=200; const double PI=3.14159265; const int INTERVAL=300; int main() { DWORD busySpan[COUNT]; DWORD idleSpan[COUNT]; int half= INTERVAL / 2; double radian=0.0; for(int i=0;i<COUNT;i++) { busySpan[i]=(DWORD)(half+(sin(PI*radian)*half)); idleSpan[i]=INTERVAL-busySpan[i]; radian += split; } DWORD startTime=0; int j = 0; while(1) { j=j%COUNT; startTime = GetTickCount(); while((GetTickCount()-startTime)<=busySpan[j]) ; Sleep(idleSpan[j]); j++; } return 0; }