(연관된 글이 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]