Doc*_*ord 19 c# parallel-processing asynchronous parallel.foreachasync
我正在尝试运行 a Parallel.ForEachAsync(),但出现以下两个错误:
错误 1:
参数 2:无法从 System.Threading.Tasks.ParallelOptions 转换为 System.Threading.CancellationToken
错误 2:
Delegate 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.
});
}
Run Code Online (Sandbox Code Playgroud)
为了使其按照我的要求工作,必须改变什么?
Gur*_*ron 34
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.
});
}
Run Code Online (Sandbox Code Playgroud)
例子。
也很有用 - .NET 6 Parallel.ForEachAsync 中需要两个取消令牌?
| 归档时间: |
|
| 查看次数: |
32693 次 |
| 最近记录: |