C#では、forループと同じ、順序なしで、複数のスレッド。 事は、それは長いとintでのみ動作し、私はulongで動作したいです。さて、私は型キャストすることができますが、私は国境にいくつかの問題があります。私はlongからMaxValue-10までのループを必要としているとしましょう.MaxValue + 10(覚えておいて、私はulongについて話しています)...どうすればいいですか? (私は認めなければならない、私は今少し愚かな感じが、私はちょうど今、それを把握することはできません)C#System.Threading.Tasks.Parallel.For on ulong
例:
for (long i = long.MaxValue - 10; i < long.MaxValue; ++i)
{
Console.WriteLine(i);
}
//does the same as
System.Threading.Tasks.Parallel.For(long.MaxValue - 10, long.MaxValue, delegate(long i)
{
Console.WriteLine(i);
});
//except for the order, but theres no equivalent for
long max = long.MaxValue;
for (ulong i = (ulong)max - 10; i < (ulong)max + 10; ++i)
{
Console.WriteLine(i);
}
はい、働くためのカスタム範囲を作成することができますが、私はより多くのがあった望みましたエレガントなバージョン – phogl
残念ながら、MicrosoftはParallel.For()のintとlongバージョンのみを提供しています。()の汎用Parallelはありません。ここで、Tは範囲変数です。 ulongをサポートするには、ソースコードを変更するか、Parallel.For()の独自の実装を記述する必要があります。 –
私はそれがparallel.forの独自の実装になると思いますが、それは効率的ではないと恐れています。 – phogl