How to start a thread on a specific core?
Yes. Check out ProcessorAffinity
for Windows or SetProcessorAffinity
for XBox XNA.
This is also discussed on another Stackoverflow question.
Set ProcessorAffinity
of the process:
0x0001 = 0000 0001 - run on 1st core ↑0x0002 = 0000 0010 - run on 2nd core ↑0x0003 = 0000 0011 - run on 1st and 2nd core ↑↑0x0004 = 0000 0100 - run on 3rd core ↑
Simple code:
using (var process = Process.GetCurrentProcess()){ // only run on core number 1 process.ProcessorAffinity = (IntPtr) 0x0001;}