Freigeben über


Task.Yield Methode

Definition

Erstellt eine Awaitable-Aufgabe, die asynchron an den aktuellen Kontext liefert, wenn erwartet.

public:
 static System::Runtime::CompilerServices::YieldAwaitable Yield();
public static System.Runtime.CompilerServices.YieldAwaitable Yield ();
static member Yield : unit -> System.Runtime.CompilerServices.YieldAwaitable
Public Shared Function Yield () As YieldAwaitable

Gibt zurück

Ein Kontext, der während des Abwartens asynchron wieder in den aktuellen Kontext zum Zeitpunkt des Abwartens übergeht. Wenn der aktuelle SynchronizationContext nicht Null ist, wird er als der aktuelle Kontext behandelt. Andernfalls wird der Taskplaner, der der aktuell ausgeführten Aufgabe zugeordnet ist, als der aktuelle Kontext behandelt.

Hinweise

Sie können in einer asynchronen Methode verwenden await Task.Yield(); , um zu erzwingen, dass die Methode asynchron abgeschlossen wird. Wenn ein aktueller Synchronisierungskontext (SynchronizationContext -Objekt) vorhanden ist, wird der Rest der Ausführung der Methode zurück in diesen Kontext gesendet. Der Kontext entscheidet jedoch, wie diese Arbeit im Verhältnis zu anderen Arbeiten priorisiert werden soll, die möglicherweise ausstehend sind. Der Synchronisierungskontext, der in den meisten Benutzeroberflächenumgebungen in einem UI-Thread vorhanden ist, priorisiert häufig Die arbeit, die im Kontext bereitgestellt wird, höher als Eingabe- und Renderingarbeit. Verlassen Sie sich aus diesem Grund nicht darauf await Task.Yield(); , eine Benutzeroberfläche reaktionsfähig zu halten. Weitere Informationen finden Sie im Blog Zur parallelen Programmierung mit .NET den Eintrag Nützliche Abstraktionen, die mit ContinueWith aktiviert sind.

Gilt für: