1. Příklad - Potřebujeme setřídit data, ale třídíme velké množství položek - sekvenčně pomocí LINQ
public void Sort() { _log.Debug("Begin Sort!"); var elements = (from val in this select val).OrderBy(a => a, _comparer); List<LibraryElement> sort_list = elements.ToList(); base.Clear(); base.AddRange(sort_list); _log.Debug("End Sort!"); }
Stejný příklad pomocí datového paralelizmu
2. Příklad - Potřebujeme setřídit data - paralelně pomocí PLINQ
public void Sort() { _log.Debug("Begin Sort!"); var elements = (from val in this.AsParallel() select val).OrderBy(a => a, _comparer); List<LibraryElement> sort_list = elements.ToList(); base.Clear(); base.AddRange(sort_list); _log.Debug("End Sort!"); }
Data jsme setřídili mnohem rychleji, protože TPL nabízí jednoduchý způsob, jak v aplikaci umožnit paralelní zpracování – tedy co nejefektivnější zpracování dat s využitím všech dostupných jader procesoru.
Žádné komentáře:
Okomentovat