gpt4 book ai didi

c# - Blazor - 退出页面时如何停止计时器

转载 作者:行者123 更新时间:2023-12-05 01:27:58 25 4
gpt4 key购买 nike

我有一个 razor 页面/组件,它在覆盖的 OnInitializedAsync 方法中启动一个计时器。它使用 API 客户端每 500 毫秒获取一个 IEnumerable :

 protected override async Task OnInitializedAsync()
{
_interfaceConnections = await _client.GetAllInterfaceConnections();

var timer = new Timer();
timer.Elapsed += new ElapsedEventHandler(UpdateConnections);
timer.Interval = 500;
timer.Enabled = true;
}

private async void UpdateConnections(object source, ElapsedEventArgs e)
{
_interfaceConnections = await _client.GetAllInterfaceConnections();

await InvokeAsync(StateHasChanged);
}

离开此组件时如何停止此计时器? OnUnloadedAsync 或类似性质的东西没有等效的覆盖。因为这个计时器永远不会停止,所以它会不断地进行数据库调用,而且永远不会停止!

最佳答案

在标记部分之上

 @implements IDisposable

在@code中

// var timer = new Timer();
_timer = new Timer(); // make it a field



public void Dispose()
{
_timer?.Dispose(); // because you need it here
}

关于c# - Blazor - 退出页面时如何停止计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69093180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com