Blazor(服务器)和 async/await 模式

Blazor (Server) and the async/await pattern

Microsoft(Daniel Roth 和 Luke Latham)的 Introduction to ASP.NET Core Blazor 文章显示了 Razor 代码中等待调用的示例,例如

@code {
    private WeatherForecast[] forecasts;

    protected override async Task OnInitializedAsync()
    {
        forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
    }
}

但是,none 个示例建议 razor 页面是否应该在捕获的上下文中继续,例如

.ConfigureAwait(false);
or 
.ConfigureAwait(true); 

Blazor 是否有 UI 线程是唯一能够更新组件的线程的概念?在页面组件中调用页面 and/or 中的等待调用时被认为是什么 "best practice"。

Does Blazor have the concept of the UI Thread being the only thread able to update components?

使用服务器端 Blazor:是。
对于客户端,只有一个线程 (JavaScript),所以,是的,有点。

What is considered "best practice" when calling awaited calls in the Page and/or in page components.

为了使用任何ConfigureAwait()。

您所处的同步上下文具有隐式默认行为 ConfigureAwait(true)

ConfigureAwait() 仅在您创建额外线程(使用 Task.Run())时有用,但通常您不希望这样。