写程序 控制cpu占用率-4 绘制CPU使用率的正弦曲线2 通过C#指定线程运行的 CPU

http://blog.csdn.net/weixingstudio/article/details/6870748 连接中的写了通过C#控制CPU的占用率。

 

通过C#还可以指定当前线程的运行在哪个CPU上。

 

通过

System.Diagnostics.Process p = Process.GetCurrentProcess();
            p.ProcessorAffinity = (IntPtr)0x0001;


 

Process.ProcessorAffinity 设置当前CPU的屏蔽字,0x0001表示选用一号CPU,0x0002表示选用2号CPU。

 

代码如下:

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)
        {
            System.Diagnostics.Process p = Process.GetCurrentProcess();
            p.ProcessorAffinity = (IntPtr)0x0001;

            const int SAMPLING_COUNT = 200;
            const double PI = 3.14159;
            const int TOTAL_AMPLITUDE = 250; // the length of each time piece
            //const int system_busy = 10; // take the system cpu consume into consideration

            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]);
            }
        }
    }
}


程序的运行结果如图:

 

可以通过调整参数使曲线更加圆润一些,但是我调试了好久,也就得到了上面的截图。不过整体来说,这个曲线图要比http://blog.csdn.net/weixingstudio/article/details/6870748中的曲线图好看的多了。

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixingstudio/article/details/6871235
个人分类: Algorithms
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭