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