【问题标题】:Blazor (Server) and the async/await patternBlazor(服务器)和异步/等待模式
【发布时间】:2019-10-14 16:32:45
【问题描述】:

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);
    }
}

但是,没有一个示例表明剃刀页面是否应该在捕获的上下文中继续,例如

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

Blazor 是否有 UI 线程是唯一能够更新组件的线程的概念?在页面和/或页面组件中调用等待调用时被认为是“最佳实践”。

【问题讨论】:

    标签: async-await blazor blazor-server-side


    【解决方案1】:

    Blazor 是否有 UI 线程是唯一能够更新组件的线程的概念?

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

    在页面和/或页面组件中调用等待调用时被视为“最佳实践”。

    使用任何 ConfigureAwait()。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-08
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 2020-11-24
      • 2012-10-14
      相关资源
      最近更新 更多