首先可以调用GetSystemInfo查看有多少个CPU,再通过调用:
BOOL WINAPI SetProcessAffinityMask( __in HANDLE hProcess, __in DWORD_PTR dwProcessAffinityMask );
第一个参数是代表要设置的进程,第二个参数是一个掩码,代表可以在哪个CPU上运行。例如:设置5(101)代表在第一个和第三个CPU上运行。
还有其他几个相关的函数:
BOOL WINAPI GetProcessAffinityMask( __in HANDLE hProcess, __out PDWORD_PTR lpProcessAffinityMask, __out PDWORD_PTR lpSystemAffinityMask );
DWORD_PTR WINAPI SetThreadAffinityMask( __in HANDLE hThread, __in DWORD_PTR dwThreadAffinityMask );