оператор await Task.Delay(1).ConfigureAwait(false); в начале метода сделает это, но со средним снижением производительности в 15 мс из-за задержки.
Лучший способ отложить и очистить контекст выполнения — проверить текущий контекст выполнения и вызвать Task.Yield (он сохраняет контекст выполнения, если таковой имеется) или Task.Delay(1).ConfigureAwait(false)< /code>:
Код: Выделить всё
public async Task Test()
{
if (SynchronizationContext.Current is null)
{
await Task.Yield();
}
else
{
await Task.Delay(1).ConfigureAwait(false);
}
// Deferred code
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... on-context