默认情况下,plinq 会对 Dictionary<string, string>
使用范围分区还是 block 分区?
这是我的用例:
Dictionary<string,string> asmachtas = new Dictionary<string,string>();
...
int sum = asmachtas.AsParallel().Sum(arg => myFunction(arg));
我怎样才能自己检查呢?如何强制使用其他类型的分区?
最佳答案
范围分区仅适用于实现 IList<> 的集合。 Dictionary<,> 仅实现 IEnumerable<> 而不是 IList<>,因此将使用 block 分区。
PLINQ 使用的分区算法是一个实现细节,因此您实际上没有办法查找它。您可以在传递给 Sum() 的委托(delegate)中放置一个断点,并从调用堆栈中推断出分区方案,但堆栈相当困惑。
关于c# - 默认情况下,plinq 会对 Dictionary<string, string> 使用范围分区还是 block 分区?以及如何强制对方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8888795/