这个例子是通过C#实现智能的CPU分配,比如我们的电脑是八核心的,我们电脑上运行了几个非常占用CPU的软件,我们希望他们不要挤在一块儿,因为有的程序默认是在CPU那个0里面,如果运行得多的话那么运行在这个CPU上的程序就会很卡很卡,我们需要将他们进行分配,我们的代码是根据进程的名字来分配的,自动从最高位开始分配,比如我的电脑

八核心CPU

这八核心是从0到7的,我们希望从7开始分配,看代码吧。其中Pname就是进程的名字

/// <summary>   
/// 智能分配CPU  从高到低 从高到低分配   
/// </summary>   
public static void fenpeiCPU()   
{   
    #region 智能随机分配   
    try
    {   
        Process[] ps = Process.GetProcessesByName(Pname);   
        if (ps.Length > 0)   
        {   
            int zCPU = Environment.ProcessorCount;//总CPU颗数   
            int cCPU = zCPU;//当前分配到了哪一颗CPU   
            for (int i = 0; i < ps.Length; i++)//进程数循环   
            {   
                if (cCPU == 0)   
                    cCPU = zCPU - 1;   
                else
                    cCPU--;   
                try
                {   
                    int p = (int)Math.Pow(2, cCPU);   
                    ps[i].ProcessorAffinity = (IntPtr)p;   
                }   
                catch { }   
            }   
        }   
    }   
    catch { }   
    #endregion   
}