禁用同步上下文

要禁用同步上下文,你应该调用 ConfigureAwait 方法:

async Task() Foo()
{
    await Task.Run(() => Console.WriteLine("Test"));
}

. . .

Foo().ConfigureAwait(false);

ConfigureAwait 提供了一种避免默认 SynchronizationContext 捕获行为的方法; 为 flowContext 参数传递 false 可防止在 await 之后使用 SynchronizationContext 继续执行。

它的全部关于 SynchronizationContext 引用。