Kapitel 13. Zeitplannungsprogramm

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Wenn ein Teil des Codes ausgeführt wird, muss er irgendwo auf einem Thread laufen. Ein Zeitplannungsprogramm ist ein Objekt, das entscheidet, wo ein bestimmtes Stück Code ausgeführt wird. Im .NET-Framework gibt es verschiedene Zeitplannungsprogramme, die mit leichten Unterschieden von Parallel- und Datenflusscode verwendet werden.

I empfiehlt, wann immer es möglich ist, kein Zeitplannungsprogramm anzugeben; die Standardeinstellungen sind in der Regel korrekt. Zum Beispiel setzt der await Operator in asynchronem Code die Methode automatisch im gleichen Kontext fort, es sei denn, du überschreibst diese Vorgabe, wie in Rezept 2.7 beschrieben. Auch reaktiver Code hat vernünftige Standardkontexte für das Auslösen seiner Ereignisse, die du mit ObserveOn überschreiben kannst, wie in Rezept 6.2 beschrieben.

Wenn du anderen Code in einem bestimmten Kontext ausführen musst (z. B. einem UI-Thread-Kontext oder einem ASP.NET-Anfragekontext), kannst du die Zeitplanungsrezepte in diesem Kapitel verwenden, um die Ausführung deines Codes zu steuern.

13.1 Arbeit in den Thread-Pool einplanen

Problem

du ein Stück Code hast, das du explizit in einem Threadpool-Thread ausführen möchtest.

Lösung

Die überwiegende Mehrheit der Zeit wirst du Task.Run verwenden wollen, was ziemlich einfach ist. Der folgende Code blockiert einen Threadpool-Thread ...

Get Concurrency in C# Cookbook, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.