Skip to main content
update markdown, docs link, code style, fix bug in the code with &=
Source Link
aepot
  • 4.9k
  • 2
  • 16
  • 30

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask &= 0x000F; // use only any of the first 4 available processors Proc.ProcessorAffinity = (IntPtr)AffinityMask; ProcessThread Thread = Proc.Threads[0]; AffinityMask = 0x0002; // use only the second processor, despite availability Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  
using System.Diagnostics; 
Process proc = Process.GetCurrentProcess(); long affinityMask = 0x000F; // use only any of the first 4 available processors proc.ProcessorAffinity = (IntPtr)affinityMask; ProcessThread thread = proc.Threads[0]; affinityMask = 0x0002; // use only the second processor, despite availability thread.ProcessorAffinity = (IntPtr)affinityMask; 

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity PropertyProcessThread.ProcessorAffinity Property

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask &= 0x000F; // use only any of the first 4 available processors Proc.ProcessorAffinity = (IntPtr)AffinityMask; ProcessThread Thread = Proc.Threads[0]; AffinityMask = 0x0002; // use only the second processor, despite availability Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity Property

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

using System.Diagnostics; 
Process proc = Process.GetCurrentProcess(); long affinityMask = 0x000F; // use only any of the first 4 available processors proc.ProcessorAffinity = (IntPtr)affinityMask; ProcessThread thread = proc.Threads[0]; affinityMask = 0x0002; // use only the second processor, despite availability thread.ProcessorAffinity = (IntPtr)affinityMask; 

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: ProcessThread.ProcessorAffinity Property

added 21 characters in body
Source Link
Phillip
  • 862
  • 7
  • 10

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask |=&= 0x000F; // use only any of the first 4 processors available processors Proc.ProcessorAffinity = (IntPtr)AffinityMask; ProcessThread Thread = Proc.Threads[0]; AffinityMask |== 0x0002; // use only the second processor, despite availability Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity Property

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask |= 0x000F; // use only any of the first 4 processors available Proc.ProcessorAffinity = (IntPtr)AffinityMask; ProcessThread Thread = Proc.Threads[0]; AffinityMask |= 0x0002; // use only the second processor Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity Property

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask &= 0x000F; // use only any of the first 4 available processors Proc.ProcessorAffinity = (IntPtr)AffinityMask; ProcessThread Thread = Proc.Threads[0]; AffinityMask = 0x0002; // use only the second processor, despite availability Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity Property

added 505 characters in body
Source Link
Phillip
  • 862
  • 7
  • 10

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask |= 0x000F; // use only any of the first 4 processors available Proc.ProcessorAffinity = (IntPtr)AffinityMask;   ProcessThread Thread = Proc.Threads[0]; AffinityMask |= 0x0002; // use only the second processor Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity Property

Process objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask |= 0x000F; // use only any of the first 4 processors available Proc.ProcessorAffinity = (IntPtr)AffinityMask; ...  

Yes, it's that easy :)

Process and ProcessThread objects have a ProcessorAffinity property of IntPtr type that can be directly manipulated to read/change affinity for up to 64 processors:

  using System.Diagnostics; ... Process Proc = Process.GetCurrentProcess(); long AffinityMask = (long)Proc.ProcessorAffinity; AffinityMask |= 0x000F; // use only any of the first 4 processors available Proc.ProcessorAffinity = (IntPtr)AffinityMask;   ProcessThread Thread = Proc.Threads[0]; AffinityMask |= 0x0002; // use only the second processor Thread.ProcessorAffinity = (IntPtr)AffinityMask; ...  

You can also use the thread's IdealProcessor property to allow the scheduler to prefer running the thread on a specified processor (without guarantee).

Yes, it's that easy :)

Reference: MSDN ProcessThread.ProcessorAffinity Property

Source Link
Phillip
  • 862
  • 7
  • 10
Loading