Blazor 服务器端计时器运行异常

Mar*_*sen 2 system.timers.timer server blazor

我正在运行此服务器端 Blazor,并且我有:

listTimer = new System.Timers.Timer();
        listTimer.Interval = 1000;
        listTimer.Elapsed += async (s, e) =>
        {
            await Utils.LogToConsole(jsRuntime, DateTime.Now.ToString());
        }

    `
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个程序时,我在 Chrome 控制台中收到大量日志,但我预计每 1000 毫秒只能看到日志。任何人都见过这个问题并找到了解决方法。是的,我可以检查实际时间并进行比较,但我不喜欢它像那样疯狂地触发。

boi*_*iil 5

处置组件时,您必须取消订阅计时器事件。最简单的方法是处理计时器本身。

@using System
@implements IDisposable

@code {
    public void Dispose()
    {
        listTimer?.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)