目标:我的目标是将所有正在运行的进程的亲缘关系设置为1核心。然后启动一个具有所有核心亲和力的程序。
技能Lvl:我的编程技能水平一般都是初学者。这是我的第一语言。
需要:我想对此编码提供一些帮助,也许还有一些代码的文章或说明。谢谢
答案 0 :(得分:1)
有一个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)