Blazor:每隔一段时间轮询服务器的对象?
Blazor: Poll a server's object in an interval?
Blazor 似乎使客户端可以使用下面称为 SignalR 的东西轻松调用服务器的方法。但是当我搜索 Blazor 是否在另一个方向这样做时,答案是 Blazor 不会那样做,我必须自己使用 SignalR 来实现它。所以,我想到了投票。
也就是说,我喜欢每隔一段时间读取一个属性或者调用服务器对象中的一个方法来判断是否有什么变化。为了对此进行测试,我将此 属性 添加到 WeatherForecastService
class。 属性 每次读取时都会增加。
int _Value = 0;
public int Value
{
get
{
_Value++;
return _Value;
}
}
在天气平板示例页面中,我删除了显示天气的代码并添加了这个。
<p>This component demonstrates fetching data from a service.</p>
<div>Value = @this.Value</div>
@code {
private int Value = 0;
protected override async Task OnInitializedAsync()
{
System.Timers.Timer t = new System.Timers.Timer();
t.Elapsed += (s, e) => { Value = ForecastService.Value; };
t.Interval = 1000;
t.Start();
}
}
它没有用。我找到了一个 ,但是它使用了我不理解的 F#,我也不知道 ClientTImer
是什么,所以答案对我没有帮助。
t.Elapsed += async (s, e) =>
{
Value = ForecastService.Value;
await InvokeAsync(StateHasChanged);
};
Blazor 似乎使客户端可以使用下面称为 SignalR 的东西轻松调用服务器的方法。但是当我搜索 Blazor 是否在另一个方向这样做时,答案是 Blazor 不会那样做,我必须自己使用 SignalR 来实现它。所以,我想到了投票。
也就是说,我喜欢每隔一段时间读取一个属性或者调用服务器对象中的一个方法来判断是否有什么变化。为了对此进行测试,我将此 属性 添加到 WeatherForecastService
class。 属性 每次读取时都会增加。
int _Value = 0;
public int Value
{
get
{
_Value++;
return _Value;
}
}
在天气平板示例页面中,我删除了显示天气的代码并添加了这个。
<p>This component demonstrates fetching data from a service.</p>
<div>Value = @this.Value</div>
@code {
private int Value = 0;
protected override async Task OnInitializedAsync()
{
System.Timers.Timer t = new System.Timers.Timer();
t.Elapsed += (s, e) => { Value = ForecastService.Value; };
t.Interval = 1000;
t.Start();
}
}
它没有用。我找到了一个 ClientTImer
是什么,所以答案对我没有帮助。
t.Elapsed += async (s, e) =>
{
Value = ForecastService.Value;
await InvokeAsync(StateHasChanged);
};