在一个多cpu系统中我们运行一个exe文件,可以在任务管理器中,点这个进程右键,有个关系摄者,它可以让某一个cpu绑定运行这个进程
可以用System.Diagnostics.Process.Start("C:\\newfax2\\Debug\\newfax.exe");来运行一个进程,那用c#编程如何实现绑定cpu这个功能呢?

解决方案 »

  1.   

    Call API
    SetProcessAffinityMask
      

  2.   

    呵呵,搞定了,谢谢Nara(千里之外) ,谢谢大家帮我顶!
     private void SetProcess(string processName)
            {
                try
                {
                    foreach (Process thisproc in Process.GetProcessesByName(processName))
                    {
                        MessageBox.Show(thisproc.ProcessorAffinity.ToString());  
                        IntPtr tt = new IntPtr();
                        tt = (IntPtr)2;
                        thisproc.ProcessorAffinity = tt;
                        MessageBox.Show(thisproc.ProcessorAffinity.ToString());                    
                    }
                }
                catch (Exception Exc)
                {
                    MessageBox.Show(Exc.ToString());
                }            
            }
    无论原来是在那个cpu上运行以后都在第二个cpu上运行(当然是可以更改cpu的进程)processName为进程名。