0

違いは何ですか:

Task[] tasks = new Task[mylist.Count];
int i = 0;

foreach (DataTable dt in mylist)
{
            Task t = Task.Factory.StartNew(() => UpdateProductsData(dt, updateType));
            tasks[i] = t;
            i++;
}
Task.WaitAll(tasks);

と:

tasks[0] = Task.Factory.StartNew(() => UpdateProductsData(mylist[0], updateType));
tasks[1] = Task.Factory.StartNew(() => UpdateProductsData(mylist[1], updateType));
tasks[2] = Task.Factory.StartNew(() => UpdateProductsData(mylist[2], updateType));
tasks[3] = Task.Factory.StartNew(() => UpdateProductsData(mylist[3], updateType));
Task.WaitAll(tasks);

2 番目のスニペットは期待どおりに動作しますが、何らかの理由で最初のスニペットが途中で終了します。動的な実装を提供するために、最初の例で何を変更する必要がありますか?

4

1 に答える 1