【问题标题】:Blazor: Poll a server's object in an interval?Blazor:按时间间隔轮询服务器的对象?
【发布时间】:2020-02-03 14:02:11
【问题描述】:

Blazor 似乎使客户端可以使用下面称为 SignalR 的东西轻松调用服务器的方法。但是当我搜索 Blazor 是否为另一个方向这样做时,答案是 Blazor 没有这样做,我必须自己使用 SignalR 来实现它。所以,我想到了投票。

也就是说,我喜欢每隔一段时间读取服务器对象中的一个属性或调用一个方法,以确定是否有变化。为了测试这一点,我将此属性添加到 WeatherForecastService 类中。每次读取时属性都会增加。

    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();
    }
}

它没有工作。我找到了一个existing question,但是它使用了我不明白的F#,我不知道ClientTImer是什么,所以答案对我没有帮助。

【问题讨论】:

    标签: asp.net-core blazor blazor-client-side


    【解决方案1】:
    t.Elapsed += async (s, e) => 
        { 
           Value = ForecastService.Value; 
           await InvokeAsync(StateHasChanged); 
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多