2012-11-05 51 views
2

目標:我的目標是將所有正在運行的進程的關聯設置爲1個核心。然後用所有核心的親和力啓動一個程序。VB.net Process Affinity

技能等級:我在編程方面的技能水平一般都是初學者。這是我的第一語言。

需要:我希望得到一些關於這個編碼的幫助,也許還有一些文章或代碼的描述。謝謝

回答

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)