有没有办法将 PLINQ 查询的线程“索引”传递给它的一个运算符,比如 Select?
背景是我有一个 PLINQ Query 进行一些反序列化,反序列化方法使用一个结构(可能是一个数组)将数据传递给另一个方法:
ParallelEnumerable.Range(0, nrObjects)
.WithDegreeOfParallelism(8)
.Select(i => this.Deserialize(serializer, i, arrays[threadIndex]))
.ToList();
(threadIndex 是我想要的新变量)
如果我知道线程索引,我可以预先创建 8 个这样的数组(即使可能不使用所有数组)并重用它们。反序列化方法可能会被调用数百万次,所以每一个小的优化都很重要。