Посчитать бит-маску для ProcessorAffinity
Есть примерно такой метод
Process mproc = new Process();
mproc.StartInfo.FileName = "";
mproc.Start();
mproc.ProcessorAffinity = А как?;
Так вот,нужно посчитать битмаску для ProcessorAffinity на основе количества потоков
Что-то типа такого: всего 12 потоков,нужно ограничить до 6. Нужен метод,который сможет конвертировать 6 в то, что примет ProcessorAffinity
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
С 1 по 6 ядро будет выглядеть как-то так
mproc.ProcessorAffinity = (nint)((1 << 6) - 1);
логика
1
0000001
<< 6
1000000
- 1
0111111
nint и IntPtr - одно и то же.