c# - Parallel.For VS for - 如何锁定变量?
问题描述
您好我有一个代码示例,但我不确定如何在 Parallel.For 中锁定变量,我的理解是许多线程同时使用 for 内部使用的变量。
int VVA=0;
for (int i = 0; i < result.Count; i++)
{
if (result[i] == 'a')
va++;
};
//结果正常为:5000
Parallel.For(0, result.Count, index =>
{
if (result[index] == 'a')
va++;
Interlocked.Add(ref VVA, va);
});
//结果与并行:43565646(类似的东西)
这里缺少什么?提前致谢!
解决方案
推荐阅读
- c# - 使用 c# 库恢复 azure blob 快照
- python - 类型错误:step() 缺少 1 个必需的位置参数:'y'
- linux - 在Shell脚本中将文件中的字母更改为大写
- javascript - 如何使用字符串与对象文字属性定义类型?
- concurrency - 如何理解两个线程递增和打印一个全局变量的结果?
- r - 在库中找不到 rJava“EXTPR_PTR”过程入口点
- php - composer dump-autoload -o 跳过我所有的课程
- javascript - 构造 URL 字符串时如何使用变量?
- python - 在 Python 上对 8 个超参数执行网格搜索
- kotlin - 具有暂停功能的控制器导致 netty.RoutingInBoundHandler - java.lang.NoClassDefFoundError: kotlinx/coroutines/ThreadContextElement