如何在 EditContext.OnFieldChanged 中执行异步调用

问题描述 投票:0回答:1

EditContext OnFieldChanged 事件中,当我有一个特定字段更改时,我需要将更改写入数据库。这是一个 Blazor 服务器应用程序,我使用实体框架。

异步可以吗?两者都可以正常工作(看起来)。同样重要的是,用户不会看到任何延迟或暂停吗?

这在我的测试中效果很好。但这并不意味着它在任何情况下、任何负载下都能在任何浏览器上正常工作。那么对此有担忧吗?

blazor blazor-server-side eventhandler
1个回答
0
投票

OnFieldChanged 是一个旧式事件,其参数没有可写属性。

所以这正是

async void
的目的。当您想要更新 UI(可能不需要)时,请在末尾添加 StateHasChanged()。

与不等待方法内执行的任何操作相比,在这里使用

async void
的危害较小。

它肯定胜过执行任何同步 I/O,因为这会导致用户延迟。

© www.soinside.com 2019 - 2024. All rights reserved.