Nó dường như không làm squat cho chương trình thử nghiệm sau đây. Đây có phải là vì tôi đang thử nghiệm với một danh sách nhỏ không?AsParallel hoạt động chính xác như thế nào?
static void Main(string[] args)
{
List<int> list = 0.UpTo(4);
Test(list.AsParallel());
Test(list);
}
private static void Test(IEnumerable<int> input)
{
var timer = new Stopwatch();
timer.Start();
var size = input.Count();
if (input.Where(IsOdd).Count() != size/2)
throw new Exception("Failed to count the odds");
timer.Stop();
Console.WriteLine("Tested " + size + " numbers in " + timer.Elapsed.TotalSeconds + " seconds");
}
private static bool IsOdd(int n)
{
Thread.Sleep(1000);
return n%2 == 1;
}
Cả hai phiên bản đều mất 4 giây để chạy.
Làm cách nào bạn nhận được Upto, một phương pháp khuyến nông? – thewpfguy