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

标签 server blazor system.timers.timer

我有这个 ServerSide Blazor 正在运行并且我有:

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

    `

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

最佳答案

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

@using System
@implements IDisposable

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

关于server - Blazor 服务器端计时器正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62513021/

相关文章:

c# - 在 Blazor 服务器端应用程序中获取用户代理和 IP

c# - UWP 相当于 Timer.Elapsed 事件

c# - 定时器随机不触发

c# - 动态生成 blazor mudblazor 表

node.js - pdfmake 不包含 node.js 中的字体/文本

node.js - 从 Nodejs 传递错误但未收到正确的错误

java - 通过客户端计算机上的应用程序在服务器上运行应用程序

blazor - 为什么 Blazor 的 EditForm 需要点击两次提交按钮才能执行任何操作?

C#Blazor : Countdown Timer

python - Odoo session 随机过期