我试图运行一个Parallel.ForEachAsync(),但是我得到了以下两个错误:
错误1: 参数2:无法从System.Threading.Tasks.ParallelOptions转换为System.Threading.CancellationToken 错误2: 委托Func不带一个参数
这是我的密码:
public async Task<List<DisplayDto>> GetData()
{
var options = new ParallelOptions()
{
MaxDegreeOfParallelism = 20;
};
await Parallel.ForEachAsync(result, options, async OrderNumber => {
//Do Stuff here.
});
}为了让这件事像我想要的那样工作,必须改变什么?
发布于 2021-12-06 17:35:41
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.
});
}示例。
https://stackoverflow.com/questions/70249422
复制相似问题