我正在嘗試運行一個Parallel.ForEachAsync(),但出現以下兩個錯誤:
錯誤 1:
引數 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.
});
}
必須更改什么才能使其按我的意愿作業?
uj5u.com熱心網友回復:
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://www.uj5u.com/shujuku/379816.html
