把上一节的通过C++ 控制CPU的占用率显示正弦曲线的代码用C# 重写了一次,效果要好一点。
上一节的连接: http://blog.csdn.net/weixingstudio/article/details/6867666
C#代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace cpu_4_2_csharp { class Program { static void Main(string[] args) { const int SAMPLING_COUNT = 200; const double PI = 3.14159; const int TOTAL_AMPLITUDE = 250; // the length of each time piece double[] busySpan=new double[SAMPLING_COUNT]; int amplitude = TOTAL_AMPLITUDE / 2; double radian = 0.0; double radianIncreament = 2.0 / (double)SAMPLING_COUNT; for (int i = 0; i < SAMPLING_COUNT; i++) { busySpan[i] = (double)(amplitude + Math.Sin(PI * radian) * amplitude); radian += radianIncreament; } int startTick = Environment.TickCount; for (int j = 0; ; j = (j + 1) % SAMPLING_COUNT) { startTick = Environment.TickCount; while ((Environment.TickCount - startTick) < busySpan[j]) { // } System.Threading.Thread.Sleep(TOTAL_AMPLITUDE-(int)busySpan[j]); } } } }
效果图:
1. 时间片为300
2. 时间片为250
3. 时间片为200