首页 > 解决方案 > 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#parallel-processingtask-parallel-library

解决方案


推荐阅读