调用异步等待函数时,Blazor UI 出现延迟

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

我将 Blazor(Web 应用程序)与 .NET 8 和下拉菜单(与 MudBlazor)一起使用。当用户从下拉列表中选择一个项目时,我会向后端调用一个等待函数。问题是,在用户单击下拉列表以在下拉列表上显示项目名称后,它延迟了几秒钟。我尝试删除await函数,它工作正常。这与 Blazor 的线程有关吗? 代码如下所示:

protected async Task OnValueChanged(Vessel selectedVessel)
{
    // Do something            
    var info = await GetMoreVesselInfo(selectedVessel.Id);
    // Display more info on the map
}
c# .net multithreading async-await blazor
1个回答
0
投票

这看起来像

GetMoreVesselInfo
正在同步执行并且不会产生。您是否使用异步方法来访问数据源?

尝试在

Task.Delay
的顶部添加
OnValueChanged
。这会强制产生收益并让初始渲染事件立即运行。

protected async Task OnValueChanged(Vessel selectedVessel)
{
    await Task.Delay(1);
    // Do something            
    var info = await GetMoreVesselInfo(selectedVessel.Id);
    // Display more info on the map
}
© www.soinside.com 2019 - 2024. All rights reserved.