相关疑难解决方法(0)

这是使用Parallel.ForEach()线程安全吗?

基本上,我正在使用这个:

var data = input.AsParallel();
List<String> output = new List<String>();

Parallel.ForEach<String>(data, line => {
    String outputLine = ""; 
    // ** Do something with "line" and store result in "outputLine" **

    // Additionally, there are some this.Invoke statements for updating UI

    output.Add(outputLine);
});
Run Code Online (Sandbox Code Playgroud)

输入是一个List<String>对象.该ForEach()语句对每个值进行一些处理,更新UI,并将结果添加到output List.这有什么本质上的错误吗?

笔记:

  • 输出顺序并不重要

更新:

根据我得到的反馈,我lockoutput.Add声明中添加了一个手册,以及UI更新代码.

c# parallel-processing multithreading thread-safety

21
推荐指数
3
解决办法
2万
查看次数