C ++ SetProcessAffinityMask使用所有处理器

时间:2017-07-31 03:18:32

标签: c++ process

我想设置进程以使用所有处理器。我试过了

SetProcessAffinityMask(GetCurrentProcess(), 0);

但它没有设置为所有处理器。

1 个答案:

答案 0 :(得分:1)

如果您阅读SetProcessAffinityMask的Microsoft文档,您将看到需要指定1位才能在该处理器上运行。您正在进行的调用不允许您的进程在任何CPU上运行,因此可能会被拒绝。检查SetProcessAffinityMask来电的返回值,然后根据需要致电GetLastError以了解原因。

新进程设置为在所有CPU上运行,因此您不需要调用此函数来指定该进程,除非您的进程是由另一个由于其自身原因而限制此进程的进程生成的。

在超过64个CPU的系统上运行时也需要考虑。