gpt4 book ai didi

blazor - 如何在客户端更新 Blazor Server 应用程序的服务器端更改?

转载 作者:行者123 更新时间:2023-12-04 02:43:34 25 4
gpt4 key购买 nike

我的 ChangeValues 服务器端事件每 5 秒发生一次,但在客户端,我只能看到 number 变量的第一个值。看下面的代码

@page "/"
<button class="btn btn-primary" @onclick="ChangeValues">Click me</button>
<b>@number</b>
@code {
double number;
private Random rnd = new Random();
private System.Threading.Timer _timer;
void ChangeValues()
{
number = rnd.NextDouble();
Console.WriteLine(number);
}
private void DoWork(object state)
{
ChangeValues();
}
protected override async Task OnInitializedAsync()
{
_timer = new System.Threading.Timer(DoWork, null, TimeSpan.Zero,
TimeSpan.FromSeconds(5));
}
}

最佳答案

当您使用定时器(它将在另一个线程上触发)时,您必须使用 Invoke 调用 StateHasChanged():

private async void DoWork(object state)
{
ChangeValues();
await InvokeAsync(StateHasChanged);
}

关于blazor - 如何在客户端更新 Blazor Server 应用程序的服务器端更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58166454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com