Task.Yield Método

Definição

Cria uma tarefa que é possível aguardar que retorna assincronamente para o contexto atual quando aguardada.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

Retornos

Um contexto que, quando aguardado, fará a transição de maneira assíncrona de volta ao contexto atual ao aguardar.A context that, when awaited, will asynchronously transition back into the current context at the time of the await. Se o SynchronizationContext atual não for nulo, ele será tratado como o contexto atual.If the current SynchronizationContext is non-null, it is treated as the current context. Caso contrário, o Agendador de Tarefas associado à tarefa em execução no momento será tratado como o contexto atual.Otherwise, the task scheduler that is associated with the currently executing task is treated as the current context.

Comentários

Você pode usar await Task.Yield(); em um método assíncrono para forçar o método a ser concluído de forma assíncrona.You can use await Task.Yield(); in an asynchronous method to force the method to complete asynchronously. Se houver um contexto de sincronização atual (objeto SynchronizationContext), isso irá postar o restante da execução do método para esse contexto.If there is a current synchronization context (SynchronizationContext object), this will post the remainder of the method's execution back to that context. No entanto, o contexto decidirá como priorizar esse trabalho em relação a outros trabalhos que podem estar pendentes.However, the context will decide how to prioritize this work relative to other work that may be pending. O contexto de sincronização que está presente em um thread de interface do usuário na maioria dos ambientes de interface do usuário geralmente priorizará o trabalho Postado para o contexto mais alto do que a entrada e a renderização de trabalho.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. Por esse motivo, não confie no await Task.Yield(); para manter uma interface do usuário responsiva.For this reason, do not rely on await Task.Yield(); to keep a UI responsive. Para obter mais informações, consulte a entrada abstrações úteis habilitadas com ContinueWith no blog sobre programação paralela com o .net.For more information, see the entry Useful Abstractions Enabled with ContinueWith in the Parallel Programming with .NET blog.

Aplica-se a