9

Parallel.Forループでステップサイズを指定できるオーバーロードがあるかどうか誰かが知っていますか?c#またはVB.Netのサンプルがあれば素晴らしいでしょう。

ありがとう、ゴンザロ

4

1 に答える 1

15

Googleは「enumerable.rangestep」を意味し、段階的な範囲を提供するEnumerable.Rangeの代替実装に出くわすことができるはずです。その後、あなたはただすることができます

Parallel.ForEach(BetterEnumerable.SteppedRange(fromInclusive, toExclusive, step), ...)

グーグルが機能していない場合、実装は次のようになります。

public static class BetterEnumerable {
    public static IEnumerable<int> SteppedRange(int fromInclusive, int toExclusive, int step) {
        for (var i = fromInclusive; i < toExclusive; i += step) {
            yield return i;
        }
    }
}

あるいは、「yieldreturn」が1つにheebiejeebiesを与える場合は、いつでも通常の古いリストをその場で作成できます。

var list = new List<int>();
for (int i = fromInclusive; i < toExclusive; i += step) {
    list.Add(i);
}
Parallel.ForEach(list, ...);

それが要件である場合、これはVBに簡単に翻訳できるはずです。

于 2011-08-22T01:56:58.353 に答える