gpt4 book ai didi

c# - 使用 PLINQ 时创建线程安全变量

转载 作者:行者123 更新时间:2023-11-30 14:24:18 25 4
gpt4 key购买 nike

我有一个项目列表,我使用 PLINQ 语句循环通过这些项目来增加特定用户的总收入,如下所示:

 double TotalEarnings = 0.0d;
_SortedList.AsParallel().WithDegreeOfParallelism(5).ForAll(item => {
TotalEarnings += Convert.ToDouble(item.SaleEarning);
});

通过像这样使用它,我总是会得到不同的值。我相信这是因为声明的变量不是线程安全的。我该如何解决这个问题?

附言_SortedList 是一个通用集合 (List<>)...

最佳答案

使用 Sum 使用 PLINQ 获取总数。它将负责高效、安全地汇总总和。

double TotalEarnings = _SortedList.AsParallel()
.WithDegreeOfParallelism(5)
.Sum(item => item.SaleEarning);

关于c# - 使用 PLINQ 时创建线程安全变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41678988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com