Task.Yield Task.Yield Task.Yield Task.Yield Method

Определение

Создает поддерживающий ожидание объект задачи, который асинхронным образом выдает возврат текущему контексту, когда его ожидают.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

Возвраты

Контекст, который при ожидании будет асинхронно переходить назад в текущий контекст во время ожидания.A context that, when awaited, will asynchronously transition back into the current context at the time of the await. Если текущий SynchronizationContext отличен от null, он также обрабатывается как текущий контекст.If the current SynchronizationContext is non-null, it is treated as the current context. В противном случае планировщик задач, связанный с задачей, выполняющейся в данный момент, рассматривается как текущий контекст.Otherwise, the task scheduler that is associated with the currently executing task is treated as the current context.

Комментарии

@No__t-0 можно использовать в асинхронном методе, чтобы принудительно завершить выполнение метода.You can use await Task.Yield(); in an asynchronous method to force the method to complete asynchronously. Если существует текущий контекст синхронизации (SynchronizationContext), то оставшаяся часть выполнения метода будет отправлена обратно в этот контекст.If there is a current synchronization context (SynchronizationContext object), this will post the remainder of the method's execution back to that context. Тем не менее, контекст определяет, как расставить приоритеты этой работы относительно другой работы, которая может быть отложена.However, the context will decide how to prioritize this work relative to other work that may be pending. Контекст синхронизации, который есть в потоке пользовательского интерфейса в большинстве сред пользовательского интерфейса, часто будет расставлять приоритеты для работы, передаваемых в контекст, который больше, чем входные данные и отрисовка.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. По этой причине не следует полагаться на await Task.Yield(); для предотвращения реагирования пользовательского интерфейса.For this reason, do not rely on await Task.Yield(); to keep a UI responsive. Дополнительные сведения см. в записи полезных абстракций, включенных с помощью ContinueWith в блоге по параллельному программированию с помощью .NET.For more information, see the entry Useful Abstractions Enabled with ContinueWith in the Parallel Programming with .NET blog.

Применяется к