I have a quad core CPU, and lets say I always want to start a Thread on the second core.
Is that possible in C#?
I have a quad core CPU, and lets say I always want to start a Thread on the second core.
Is that possible in C#?
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; }