ユーザーのPCの論理コアの数に応じて、さまざまなプロセスにワークロードを割り当てる必要があります。ワークロードは次のコードで実行されます。
static void work()
{
WorkData myData = new WorkData();
Worker myWorker = new Worker(myData);
MyWorker.doWork()
}
私はこのコードで論理コアを数えます:
int nbProcessors = 1;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
nbProcessors = Convert.ToInt32(item["NumberOfLogicalProcessors"]);
}
今、私は論理コアで作業を共有することによって、work()を10000回実行する必要があります。したがって、私のPCの場合、それぞれ1250回のwork()の反復で8つのプロセスを開始することを意味します。また、競合が発生しないように、各プロセスに独自のデータが必要です。
どうやってやるの?