Изменение соответствия Консольной программы C # - PullRequest
0 голосов
/ 18 октября 2018

На этой странице , следующий код является примером изменения сродства текущего процесса:

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process myProcess = Process.GetCurrentProcess();
        Console.WriteLine("ProcessorAffinity: {0}", myProcess.ProcessorAffinity);
        Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)3;
        Console.WriteLine("ProcessorAffinity: {0} ", myProcess.ProcessorAffinity);
        Console.ReadKey();
    }
}

Но вывод для меня:

ProcessorAffinity: 255

ProcessorAffinity: 255

означает, что сродство не изменилось.В чем проблема?И как я могу изменить родство?

1 Ответ

0 голосов
/ 18 октября 2018

Как отмечает @ChetanRanpariya в своем комментарии, проблема заключается в том, что вы меняете ProcessorAffinity одного объекта процесса (возвращенного из второго вызова Process.GetCurrentProcess()) и проверяете его в другом (возвращаемом из первый вызов Process.GetCurrentProcess()).Вот исправленный образец:

using (var currentProcess = Process.GetCurrentProcess())
{
    Console.WriteLine($"ProcessorAffinity: {currentProcess.ProcessorAffinity}");
    currentProcess.ProcessorAffinity = (System.IntPtr)3;
    Console.WriteLine($"ProcessorAffinity: {currentProcess.ProcessorAffinity}");
}
...