小编Hes*_*sam的帖子

Task.Run(),传递参数给

考虑以下代码:

attempt = 0;
for (int counter = 0; counter < 8; counter++)
{
    if (attempt < totalitems)
    {
        Tasklist<output>.Add(Task.Run(() =>
        {
            return someasynctask(inputList[attempt]);
        }));
    }
    else
    {
        break;
    }
    attempt++;
}
await Task.WhenAll(Tasklist).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)

例如,我想要 8 个并发任务,每个任务同时处理不同的输入,最后在所有任务完成后检查结果。因为我没有Task.Run() attempt在任务开始之前等待增加的完成,并且当任务开始时, 中可能有一些项目inputList没有被处理或处理了两次或更多次(因为attempt价值的不确定性。

怎么做?

c# concurrency asynchronous task

1
推荐指数
1
解决办法
5624
查看次数

标签 统计

asynchronous ×1

c# ×1

concurrency ×1

task ×1