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.