【发布时间】:2018-12-07 09:28:37
【问题描述】:
我对使用 LINQ AsParallel() 的并发性有一些疑问。
假设我有以下代码:
int counter = 0;
someList.AsParallel().ForEach(item => {
doStuff();
counter++;
});
我在网上没有找到太多...
这样做安全吗?有更好的方法吗?
我应该为counter 做一些锁定操作吗?
提前致谢
【问题讨论】:
-
如何保护通用代码的线程安全?唯一的方法是让每个线程“独占”,所以如果一个线程运行另一个线程等待..但是它就不再是并行的了! :-)
-
是的,你是对的。