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, take a look at the ProcessorAffinity property for the thread.
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;
}