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.

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