【发布时间】:2012-11-05 21:28:34
【问题描述】:
目标:我的目标是将所有正在运行的进程的亲和性设置为 1 个核心。然后启动一个具有所有内核亲和力的程序。
Skill Lvl:我的总体编程技能水平几乎是初学者。这是我的第一语言。
需要:我想要一些关于这个编码的帮助,也许是一篇文章或代码的描述。谢谢
【问题讨论】:
目标:我的目标是将所有正在运行的进程的亲和性设置为 1 个核心。然后启动一个具有所有内核亲和力的程序。
Skill Lvl:我的总体编程技能水平几乎是初学者。这是我的第一语言。
需要:我想要一些关于这个编码的帮助,也许是一篇文章或代码的描述。谢谢
【问题讨论】:
有一个C#解决方案here。
总而言之,您需要遍历所有进程(Process.GetProcesses)并将它们的.ProcessorAffinity 设置为New IntPtr(1),然后启动您的新进程。 (默认已经使用所有核心,但为了完整起见,如果您希望新进程具有不同的亲和性,请在启动后按上述相同方式进行设置。)
所有代码:
Dim procs = Process.GetProcesses
For Each p In procs
p.ProcessorAffinity = New IntPtr(1)
Next
Dim myProc = Process.Start("notepad.exe")
' Stop here to answer the OP.
' This sets the new Notepad process to be the only process running on the second CPU:
myProc.ProcessorAffinity = New IntPtr(2)
【讨论】: