Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Gewusst wie: Erstellen und Ausführen einer einfachen PLINQ-Abfrage

Im folgenden Beispiel wird gezeigt, wie Sie mithilfe der AsParallel-Erweiterungsmethode in der Quellsequenz eine einfache Parallel LINQ-Abfrage erstellen und die Abfrage mit der ForAll<TSource>-Methode ausführen.

HinweisHinweis

In dieser Dokumentation werden Delegaten in PLINQ mithilfe von Lambda-Ausdrücken definiert. Falls Sie nicht mit der Verwendung von Lambda-Ausdrücken in C# oder Visual Basic vertraut sind, finden Sie entsprechende Informationen unter Lambda-Ausdrücke in PLINQ und TPL.


            var source = Enumerable.Range(100, 20000);

            // Result sequence might be out of order.
            var parallelQuery = from num in source.AsParallel()
                                where num % 10 == 0
                                select num;

            // Process result sequence in parallel
            parallelQuery.ForAll((e) => DoSomething(e));

            // Or use foreach to merge results first.
            foreach (var n in parallelQuery)
            {
                Console.WriteLine(n);
            }

            // You can also use ToArray, ToList, etc
            // as with LINQ to Objects.
            var parallelQuery2 = (from num in source.AsParallel()
                                  where num % 10 == 0
                                  select num).ToArray();

            // Method syntax is also supported
            var parallelQuery3 = source.AsParallel().Where(n => n % 10 == 0).Select(n => n);



In diesem Beispiel wird das grundlegende Muster zum Erstellen und Ausführen einer beliebigen Parallel LINQ-Abfrage dargestellt, wenn die Reihenfolge der Ergebnissequenz irrelevant ist. Ungeordnete Abfragen werden im Allgemeinen schneller ausgeführt als geordnete Abfragen. Die Abfrage unterteilt die Quelle in Aufgaben, die asynchron in mehreren Threads ausgeführt werden. Die Reihenfolge, in der die einzelnen Aufgaben abgeschlossen werden, hängt nicht nur vom Arbeitsaufwand für die Verarbeitung der in jedem Teil enthaltenen Elemente ab, sondern auch von externen Faktoren, z. B. die Planung jedes Threads im Betriebssystem. Dieses Beispiel soll die Verwendung veranschaulichen, und es wird möglicherweise nicht schneller als die entsprechende sequenzielle LINQ to Objects-Abfrage ausgeführt. Weitere Informationen über Geschwindigkeitssteigerungen finden Sie unter Grundlagen zur Beschleunigung in PLINQ. Weitere Informationen zum Beibehalten der Reihenfolge von Elemente in einer Abfrage finden Sie unter Gewusst wie: Steuern der Sortierung in einer PLINQ-Abfrage.

  • Erstellen eines Konsolenanwendungsprojekts

  • Fügen Sie das Codebeispiel nach der Main-Methode ein.

  • Fügen Sie einen Aufruf von SimpleQuery in Main hinzu, und drücken Sie F5.

Datum

Versionsgeschichte

Grund

Mai 2010

Hinweis bezüglich Verwendung und Geschwindigkeitssteigerung hinzugefügt.

Kundenfeedback.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.