The processor affinity of a thread is the set of processors it has a relationship to. In other words, those it can be scheduled to run on.
ProcessorAffinity represents each processor as a bit. Bit 0 represents processor one, bit 1 represents processor two, and so on. The following table shows a subset of the possible ProcessorAffinity for a four-processor system.
Property value (in hexadecimal)
|
Valid processors
|
|---|
0x0001
|
1
|
0x0002
|
2
|
0x0003
|
1 or 2
|
0x0004
|
3
|
0x0005
|
1 or 3
|
0x0007
|
1, 2, or 3
|
0x000F
|
1, 2, 3, or 4
|
You can also specify the single, preferred processor for a thread by setting the IdealProcessor property. A process thread can migrate from processor to processor, with each migration reloading the processor cache. Specifying a processor for a thread can improve performance under heavy system loads by reducing the number of times the processor cache is reloaded.