3

任务并行库线程的委托的内部是否安全 - 即在该委托中声明的变量的值是否与该线程隔离?

例子:

Parallel.ForEach(collection, item => {
    var something = new Something(item.Property);
});

保证始终是something线程唯一的,防止被同一Parallel操作创建的另一个线程覆盖?

4

1 回答 1

5

因为这是一个委托something,所以它是一个局部变量,如果它是一个值类型,肯定是线程安全的- 当然,如果变量持有对共享引用对象的引用(例如,对委托的变量的引用),它仍然可以覆盖用作闭包)

于 2012-05-04T22:14:16.843 回答