【发布时间】:2020-05-02 08:50:30
【问题描述】:
Parallel.For(0, someStringArray.Count, (i) =>
{
someStringArray[i] = someStringArray[i].Trim();
});
我确信只有通过 Parallel.For 的集合读取才被认为是线程安全的。
编辑:没有通过其他代码部分访问该数组。
【问题讨论】:
-
@MarcGravell 如果集合足够大,这是一个很好的奖励,是的。
-
可能,但我们不知道是否还有其他东西同时访问该数组...为什么不只是
var someNewArray = someStringArray.AsParallel().Select(s => s.Trim()).ToArray()? -
@spender 当您沿着 LINQ 表达式的道路前进时,还有很多事情要做。我编辑了我的问题,谢谢!
-
那我会说“安全”。
-
如果这是在运行时访问数组的唯一代码,那很好
标签: c# multithreading parallel-processing thread-safety critical-section