나는 쿼드 코어 CPU를 가지고 있으며 항상 두 번째 코어에서 Thread
을 시작한다고 가정 해 보겠습니다.특정 코어에서 스레드를 시작하는 방법은 무엇입니까?
C#에서도 가능합니까?
나는 쿼드 코어 CPU를 가지고 있으며 항상 두 번째 코어에서 Thread
을 시작한다고 가정 해 보겠습니다.특정 코어에서 스레드를 시작하는 방법은 무엇입니까?
C#에서도 가능합니까?
예. Windows의 경우 ProcessorAffinity
을, XBox XNA의 경우 SetProcessorAffinity
을 확인하십시오.
또 다른 Stackoverflow question에 대해서도 논의됩니다.
예, 해당 스레드에 대해 ProcessorAffinity property
을 살펴보십시오.
설정 ProcessorAffinity
:
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
↑
간단한 코드 :
using (var process = Process.GetCurrentProcess())
{
// only run on core number 1
process.ProcessorAffinity = (IntPtr) 0x0001;
}
[.NET에서 프로세서 선호도를 설정하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/2510593/how-can-i-set-processor-affinity-in-net)를 참조하십시오. –