我将 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
}
这看起来像
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
}