Task.Yield Método

Definición

Crea una tarea que admite "await" que, de forma asincrónica, devuelve al contexto actual cuando es "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

Devoluciones

Contexto que, cuando se espera, hará la transición de vuelta de forma asincrónica en el contexto actual en el momento de la espera. Si el objeto SynchronizationContext actual no es null, se trata como el contexto actual. Si no, el programador de tareas que está asociado a la tarea que se está ejecutando actualmente se trata como el contexto actual.

Comentarios

Puede usar await Task.Yield(); en un método asincrónico para forzar que el método se complete de forma asincrónica. Si hay un contexto de sincronización actual (SynchronizationContext objeto), esto volverá a publicar el resto de la ejecución del método en ese contexto. Sin embargo, el contexto decidirá cómo priorizar este trabajo en relación con otro trabajo que puede estar pendiente. El contexto de sincronización que está presente en un subproceso de interfaz de usuario en la mayoría de los entornos de interfaz de usuario a menudo priorizará el trabajo publicado en el contexto más alto que el trabajo de entrada y representación. Por este motivo, no confíe en await Task.Yield(); para mantener una interfaz de usuario con capacidad de respuesta. Para obtener más información, vea la entrada Abstracciones útiles habilitadas con ContinueWith en el blog Programación en paralelo con .NET.

Se aplica a