(연관된 글이 1개 있습니다.)
안녕하세요 이 커뮤니티에서 코어 할당하는 문제와 cpu 부하테스트하는 것을 참조하여
원하는 코어에 cpu를 부하를 해보려고 했는데
지금 코드대로 하면 전체cpu 전체가 다 부하가 걸리더라구요..
그래서.. 이게 맞는건지 궁금합니다... process exploror를 이용해서 보면 코어 할당하는것은 다 됍니다.
그런데 cpu 부하코드를 넣으면 코어 8개 전체가 다 부하가 걸립니다...
namespace logtest
{
public partial class Form1 : Form
{
public System.Timers.Timer timer1sec = new System.Timers.Timer();
public System.Timers.Timer timer1sec2 = new System.Timers.Timer();
public Form1()
{
Thread t1 = new Thread((e) =>
{
SetIdealProcessor(3);
Console.WriteLine(AppDomain.GetCurrentThreadId());
timer1sec.Start();
});
t1.Start();
timer1sec.Interval = 1000;
timer1sec.Elapsed += new ElapsedEventHandler(timer1sec_Elapsed);
InitializeComponent();
}
void SetIdealProcessor(int cpuNumber)
{
if (cpuNumber >= Environment.ProcessorCount)
{
cpuNumber = 0;
}
foreach (ProcessThread pthread in Process.GetCurrentProcess().Threads)
{
if (pthread.Id == AppDomain.GetCurrentThreadId())
{
pthread.IdealProcessor = cpuNumber;
// pthread.ProcessorAffinity = new IntPtr(0x0F & (1 << cpuNumber));
break;
}
}
}
void timer1sec_Elapsed(object sender, ElapsedEventArgs e)
{
// SetIdealProcessor(0);
// Console.WriteLine(AppDomain.GetCurrentThreadId());
//Console.ReadLine();
for (int i = 0; i < Environment.ProcessorCount; i++)
{
Thread t1 = new Thread(threadFunc);
t1.IsBackground = true;
t1.Start();
}
}
private void threadFunc()
{
while (true)
{
}
}
}
}
[연관 글]
[최초 등록일: ]
[최종 수정일: 4/4/2022]