Dostępność równoległej pętli For była już dostępna w CTP. Jednak ze względu, iż była to wirtualna maszyna użycie jej było bardzo ograniczone (bez wirtualizacji VPC ma jeden wątek). Skoro teraz jest już Beta postanowiłem się temu przyjrzeć ponownie.

Parallel

Nowy Framework daje nam do dyspozycji trzy warianty: For,For<> oraz ForEach<>. Użycie? Proste:

Parallel.For(1, 10000, delegate(int i)

                          {

                          });

Warto zwrócić uwagę, że jest to przedział lewostronnie domknięty lub ParallelOptions, za pomocą którego możemy ustawić kilka opcji naszego równoległego wykonania.

Wraz z nowym obiektem dostajemy także wsparcie w Visual Studio 2010. Pierwszym z nich to okno Parallel Tasks. Pozwala podejrzeć aktualnie nasze aktualnie uruchomione wątki jak i dokonać kilku operacji na nich (zatrzymanie, wznowienie).

Drugie to ParallelStack – to okno pokaże nam stos wywołań naszych wątków. Zacne. Jak to wygląda na obrazku poniżej.

Zachęcam do zabawy z Parallel. Nie masz pomysłów na algorytm wykorzystujący te możliwości? “Kilka” takich zadań, znajdziesz na ProjectEuler.Net. Problemy matematyczne do rozwiązywania za pomocą komputera (lub głowy – da się da…:)).

Wszystkich fanów matematyki i ciekawych problemów zachęcam do zajrzenia tam no i do zaznajomienia się z nową równoległą pętlą w VS 2010.