Task.Yield Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает поддерживающий ожидание объект задачи, который асинхронным образом выдает возврат текущему контексту, когда его ожидают.
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
Возвращаемое значение
Контекст, который при ожидании будет асинхронно переходить назад в текущий контекст во время ожидания. Если текущий SynchronizationContext отличен от null, он также обрабатывается как текущий контекст. В противном случае планировщик задач, связанный с задачей, выполняющейся в данный момент, рассматривается как текущий контекст.
Комментарии
Вы можете использовать await Task.Yield();
в асинхронном методе, чтобы принудительно завершить его асинхронно. Если имеется текущий контекст синхронизации (SynchronizationContext объект ), оставшаяся часть выполнения метода будет возвращена в этот контекст. Однако контекст будет решать, как приоритизировать эту работу относительно других работ, которые могут находиться в состоянии ожидания. Контекст синхронизации, который присутствует в потоке пользовательского интерфейса в большинстве сред пользовательского интерфейса, часто имеет приоритет для работы, размещенной в контексте, выше, чем входные и отрисовки. По этой причине не следует полагаться на await Task.Yield();
то, чтобы пользовательский интерфейс реагировал. Дополнительные сведения см. в записи Полезные абстракции, включенные с continueWith в блоге Параллельное программирование с помощью .NET.