Task.Yield Metoda

Definice

Vytvoří očekávaný úkol, který asynchronně vrátí do aktuálního kontextu při čekání.Creates an awaitable task that asynchronously yields back to the current context when awaited.

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

Návraty

Kontext, který při očekávání, provede asynchronní přechod zpět do aktuálního kontextu v okamžiku čekání.A context that, when awaited, will asynchronously transition back into the current context at the time of the await. Pokud aktuální SynchronizationContext není null, je považována za aktuální kontext.If the current SynchronizationContext is non-null, it is treated as the current context. V opačném případě se Plánovač úloh, který je přidružen k aktuálně vykonávané úloze, považuje za aktuální kontext.Otherwise, the task scheduler that is associated with the currently executing task is treated as the current context.

Poznámky

Můžete použít await Task.Yield(); v asynchronní metodě pro vynucení asynchronního dokončování metody.You can use await Task.Yield(); in an asynchronous method to force the method to complete asynchronously. Pokud je k dispozici aktuální kontext synchronizace (SynchronizationContext objekt), bude tato operace publikovat zbývající část provádění metody zpět do daného kontextu.If there is a current synchronization context (SynchronizationContext object), this will post the remainder of the method's execution back to that context. Nicméně kontext se rozhodne, jak nastavit prioritu této práce vzhledem k jiné práci, kterou může čekat.However, the context will decide how to prioritize this work relative to other work that may be pending. Kontext synchronizace, který se nachází ve vlákně uživatelského rozhraní ve většině prostředí uživatelského rozhraní, často určí prioritu práce, která je publikována do kontextu, než vstup a vykreslování.The synchronization context that is present on a UI thread in most UI environments will often prioritize work posted to the context higher than input and rendering work. Z tohoto důvodu nespoléháme na await Task.Yield();, aby bylo uživatelské rozhraní nadále reagovat.For this reason, do not rely on await Task.Yield(); to keep a UI responsive. Další informace najdete v článku o užitečných abstrakcích povolených v ContinueWith v tématu Paralelní programování s využitím blogu .NET.For more information, see the entry Useful Abstractions Enabled with ContinueWith in the Parallel Programming with .NET blog.

Platí pro