簡體   English   中英

使用 Parallel.ForEachAsync

[英]Using Parallel.ForEachAsync

我正在嘗試運行Parallel.ForEachAsync() ,但出現以下兩個錯誤:

錯誤一:
參數 2:無法從 System.Threading.Tasks.ParallelOptions 轉換為 System.Threading.CancellationToken
錯誤2:
委托 Func<WC, CancellationToken, ValueTask> 不接受 1 個參數

這是我的代碼:

public async Task<List<DisplayDto>> GetData()
{
    var options = new ParallelOptions()
    {
        MaxDegreeOfParallelism = 20;
    };

    await Parallel.ForEachAsync(result, options, async OrderNumber => {
        //Do Stuff here. 
    });
}

必須更改什么才能使其按我的意願工作?

Parallel.ForEachAsync期望Func<TSource,CancellationToken,ValueTask>即接受 2 個參數(第一個是集合元素,第二個是CancellationToken ),而不是一個。 用法可能如下所示:

public async Task<List<DisplayDto>> GetData()
{
    var options = new ParallelOptions()
    {
        MaxDegreeOfParallelism = 20
    };

    await Parallel.ForEachAsync(result, options, async (OrderNumber, ct) => {
        // do not forget to use CancellationToken (ct) where appropriate 
        // Do Stuff here. 
    });
 }

例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM