當你產生多個任務,比如:並行編程TPL
for (int i = 0; i < 1000000; i++) {
// create a new task
tasks[i] = new Task<int>((stateObject) => {
tls.Value = (int)stateObject;
for (int j = 0; j < 1000; j++) {
// update the TLS balance
tls.Value++;
}
return tls.Value;
}, account.Balance);
tasks[i].Start();
}
這些工作基本上都是在ProcessThread運行。因此,我們可以爲1,000,000個任務分割1個進程線程1,000,000次。
是否是TPL任務調度程序查看操作系統並確定在多核機器中有8個虛擬進程線程,然後在這8個虛擬進程線程中分配1,000,000個任務的負載?
我不確定語法,但邏輯似乎是正確的。我會推薦parallel.for – Bengie