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(); то, чтобы пользовательский интерфейс был адаптивным. Дополнительные сведения см. в записи Useful Abstractions Enabled with ContinueWith в блоге по параллельному программированию с .NET.