私はベンチマーク プログラムを書いています。私が望むのは、異なるコアでスレッドを次々と実行することです。たとえば、コア 0 だけで作業を実行し、次にコア 0、1、コア 0、1、2、3、そして 0、1、2、3、4、5、6、7 (マシンには 8 つのコアがあります)。に渡す必要がある 2 番目のパラメーターについて混乱していますSetThreadAffinityMask()
。
10進数または16進数のいずれかを渡すことができます。16 進数では、次を渡すことができます。
0x0001 for core 0,
0x0003 for cores 0,1,
0x000F for cores 0,1,2,3
しかし、これらの値を動的に作成する方法を見つけるのに苦労しています。基本的に、特定の数のコアに対して、その数までのすべてのコアにアフィニティを設定するには、16 進値を取得できる必要があります。どこから始めればよいかについての助けは素晴らしいでしょう。