Blazor服务器端计时器正在运行

时间:2020-06-22 11:06:29

标签: server blazor system.timers.timer

我正在运行此ServerSide Blazor,并且有:

daphne -b 0.0.0.0 -p 5000 dashboard.asgi:application

但是,当我运行此程序时,我在Chrome控制台中获得了大量日志,但我希望每1000毫秒只能看到一次日志。任何人都看到此问题并找到了解决方法。是的,我可以检查实际时间并进行比较,但是我不喜欢它触发那样的疯狂。

2 个答案:

答案 0 :(得分:4)

处置组件时,您必须取消订阅timer-Event。实现计时器本身最简单的方法。

@using System
@implements IDisposable

@code {
    public void Dispose()
    {
        listTimer?.Dispose();
    }
}

答案 1 :(得分:2)

...我在Chrome控制台中收到大量日志

只有当您创建并分配了多个定时器时,这种情况才会发生。

您没有发布该代码,但我想您需要这样的内容:

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