Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows 2012上更改活动进程的处理器组_C#_C++_Windows_Visual C++ - Fatal编程技术网

C# 在Windows 2012上更改活动进程的处理器组

C# 在Windows 2012上更改活动进程的处理器组,c#,c++,windows,visual-c++,C#,C++,Windows,Visual C++,由于在Windows 2012服务器上突然运行超过64个处理器,我们不得不与多个处理器组竞争 我们的设置,启动进程和指定目标处理器组将是困难的,因此我们的目标是改变C或C++中的许多进程的处理器组。 如果我们可以获得进程句柄列表,那么需要做什么: 获取每个进程运行的处理器组 更新这些进程的某一组处理器组值,以更改它们运行的组 进程在创建时由Windows分配给组。这似乎不能直接改变 要获取进程所属处理器组的列表(可以有多个),请调用 要更新进程的组,必须使用更改进程的每个线程的组。当它刚刚开始并

由于在Windows 2012服务器上突然运行超过64个处理器,我们不得不与多个处理器组竞争

我们的设置,启动进程和指定目标处理器组将是困难的,因此我们的目标是改变C或C++中的许多进程的处理器组。 如果我们可以获得进程句柄列表,那么需要做什么:

  • 获取每个进程运行的处理器组

  • 更新这些进程的某一组处理器组值,以更改它们运行的组


  • 进程在创建时由Windows分配给组。这似乎不能直接改变

    要获取进程所属处理器组的列表(可以有多个),请调用


    要更新进程的组,必须使用更改进程的每个线程的组。当它刚刚开始并且只有一个线程时,这显然是最简单的。

    我想引用一下MSDN论坛的相关答案:

    理论上,您可以创建一个使用 KeSetSystemGroupAffinityThread以更改关联。我用英语说 理论上,因为这是一个新的调用和有限的文档 可能不行。当然,一旦你这么做了,问题是 应用程序将工作,我想你已经阅读 关于多个组和应用程序的警告 为了利用它们而写的


    另请看:

    您是否阅读了Microsoft文档?是的,我阅读了。这没有多大帮助。