Распределение потоков по ядрам - C#
Формулировка задачи:
Всем привет. Возник вопрос, как сделать так чтобы 3 созданных мною потока выполнялись на одном ядре, мне нужно это чтобы при изменении приоритетов каждого из них я видел разницу в их работе, а то так я ее не наблюдаю.. Код приводить смысла нет(он довольно таки большой и тут не к месту). Просто прошу обьяснить/сбросить ссылку(нормальную)/написать функцию или метод который бы делал так чтобы три мною созданных потока или массив потоков выполнялся на одном ядре.Заранее спасибо
Решение задачи: «Распределение потоков по ядрам»
textual
Листинг программы
void SetThreadAffinity(int mask)
{
int threadId = GetCurrentThreadId();
var currentThread = Process.GetCurrentProcess()
.Threads
.OfType<ProcessThread>()
.Where(t => t.Id == threadId)
.Single();
currentThread.ProcessorAffinity = new IntPtr(mask);
}
[DllImport("kernel32.dll")]
static extern int GetCurrentThreadId();