2013-08-03 10 views
14

Nie mogę się zorientować, jaka jest różnica między AsSequential i AsOrdered. Sprawdziłem dokumentację msdn dla każdego z nich, a także szukałem przykładów w Internecie, ale jestem zwykłym szewcem i nie byłem w stanie jednoznacznie zrozumieć, co się dzieje. Jeśli to możliwe, czy ktoś mógłby wyjaśnić, kiedy należy użyć AsSequential kontra AsOrdered, a jeśli to konieczne wyjaśnić, w jaki sposób wyniki będą inne?W PLINQ, jaka jest różnica między .AsSequential() i .AsOrdered()?

Odpowiedz

17

AsOrdered instruuje silnik Parallel LINQ, aby zachować porządek, ale nadal wykonuje zapytanie równolegle. Ma to negatywny wpływ na wydajność, ponieważ silnik musi dokładnie połączyć wyniki po wykonaniu równoległym.

AsSequential instruuje silnik Parallel LINQ do sekwencyjnego wykonywania zapytania, to znaczy nie równolegle.

+1

Dziękuję za odpowiedź. Czy AsSequential przesłonił AsParallel? Jaki jest przypadek użycia AsSequential? Czy jest to nieocenione przeliczalne, aby zapobiec uruchomieniu AsParallel? – user2565663

+2

Gdy masz bardzo złożone zapytanie, możesz określić użycie ogólnie paraliżu. I w niektórych częściach zapytania możesz wybrać wykonanie sekwencyjne (z AsSequential). – Ozkan

+2

@Ozkan możesz podać przykład? –

Powiązane problemy