完全在 Blazor Webassemble 中完成 setInterval 的有效替代方案是什么?

Eug*_*ene 0 c# setinterval blazor blazor-webassembly

我在想这样的事情:

protected override async Task OnInitializedAsync() {
  //...
  RunMeEndlesslyWithoutAwait();
  //...
}
protected async Task RunMeEndlesslyWithoutAwait() {
  while (online) {
    //... do stuff
    await Task.Delay(60000);
  }
}
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是最充分的。

setInterval(...)使用 Blazor WebAssembly 的JS 函数是否有任何已知的最佳/有效方法?

Ala*_*bra 5

您可能正在寻找Timer

@using System.Timers

@code
{
  Timer timer = new Timer();

  protected override Task OnInitializedAsync()
    {
        timer.Interval = 6000;
        timer.Elapsed +=async(_, _) => await RunMeEndlesslyWithoutAwait();
    }
}
Run Code Online (Sandbox Code Playgroud)