C#에서는 for 루프와 마찬가지로 순서가 없지만 여러 개가있는 for (...) System.Threading.Tasks.Parallel.For 스레드. 것은 long과 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는 int 및 긴 버전의 Parallel.For() 만 제공합니다.()에 대한 일반 Parallel은 없습니다. 여기서 T는 범위 변수입니다. ulong을 지원하려면 소스 코드를 수정하거나 Parallel.For()를 직접 작성해야합니다. –
나는 이것이 parallel.for의 자체 구현이 될 것이라고 생각하지만, 똑같이 효율적이지는 않을까 우려한다. – phogl