Список таблиц не обновляется внутри асинхронного таймераC#

Место общения программистов C#
Anonymous
Список таблиц не обновляется внутри асинхронного таймера

Сообщение Anonymous »

Я новичок в Blazor, но не в объектно-ориентированных языках.
У меня есть веб-сервис с контроллером, который возвращает запросы из репозитория.
У меня есть независимая служба пользовательского интерфейса, которая вызывает веб-службу.
Я пытаюсь периодически обновлять таблицу с результатами, полученными от веб-службы. р>

Код: Выделить всё

@page "/"

@using System.Timers
@using WebServices

@inject StatusService WebService // Has a httpClient to call web service
@inject IConfiguration Configuration

[h4]Status Viewer[/h4]




Name
Status
Last Update




@if (StatusList != null)
{
@foreach (var status in StatusList)
{

@status.Name
@status.Status
@status.Timestamp

}
}



@code
{
public IEnumerable StatusList { get; set; }

private int UIReloadTime;
private const int MINUTE_IN_MILLISECONDS = 60000;
private System.Timers.Timer Timer { get; set; }

protected override async Task OnInitializedAsync()
{
UIReloadTime = int.Parse(Configuration.GetValue("ui:ReloadTime"));
await UpdateStatus();

Timer = new System.Timers.Timer();
Timer.Interval = (UIReloadTime * MINUTE_IN_MILLISECONDS);
Timer.Elapsed += OnElapsed;
Timer.Enabled = true;
Timer.Start();
}

private async void OnElapsed(object? sender, ElapsedEventArgs e)
{
await UpdateStatus();
}

private async Task UpdateStatus()
{
StatusList = await WebService.GetStatus();
await InvokeAsync(StateHasChanged);
}
}
Я получаю допустимое значение во время процесса инициализации, но после этого ничего.
Я знаю, что это как-то связано с повторной отрисовкой, но Я не знаю, как его запустить, это отличается от того, как я это делаю сейчас.
Я использую рендеринг на стороне сервера, не уверен, пытаюсь ли я сделать что-то WASM с помощью серверный рендеринг
Я пробовал PeriodicTimer, Threading.Timer и пробовал что-то уже около 2 дней, и ничего не работает
Я' Мы также пытались реализовать IDisposable с типами Timer, но метод Disposable всегда вызывается

Подробнее здесь: https://stackoverflow.com/questions/787 ... sync-timer

Вернуться в «C#»