【问题标题】:Recommended guidance for Blazor task continuationBlazor 任务继续的推荐指南
【发布时间】:2020-02-06 06:31:18
【问题描述】:

在执行任何和所有 async/await 调用时,我有使用 .ConfigureAwait(false) 的 [坏] 习惯。

在某些情况下,这当然很好,因为绝大多数时候我并不关心代码在哪个线程上继续运行。在某些情况下,出于特定原因,我当然需要它在同一个线程上继续,所以要么我不使用它,要么确保代码在所需的线程上。

但是,在 Blazor 中,如果我使用 InvokeAsync() 调用像 StateHasChanged() 这样的“UI”操作,这有关系吗?

ConfigureAwait(false) 本身在 Blazor 服务器或客户端开发的上下文中是否重要?

【问题讨论】:

    标签: task blazor continuations


    【解决方案1】:

    似乎指导是在它不在 UI 上下文中时使用它。

    https://github.com/aspnet/AspNetCore/issues/13545

    【讨论】:

      【解决方案2】:

      不从 UI 调用时应使用 (false),但从 Blazor 组件中调用时应使用 (true),以便最终在同步上下文中执行延续代码。

      https://github.com/dotnet/aspnetcore/issues/19004

      【讨论】:

      • 指导方针是(几乎)永远不要使用它。
      猜你喜欢
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 2013-02-13
      相关资源
      最近更新 更多