У меня есть веб-сервис с контроллером, который возвращает запросы из репозитория.
У меня есть независимая служба пользовательского интерфейса, которая вызывает веб-службу.
Я пытаюсь периодически обновлять таблицу с результатами, полученными от веб-службы. р>
Код: Выделить всё
@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();
await InvokeAsync(StateHasChanged);
}
private async Task UpdateStatus()
{
StatusList = await WebService.GetStatus();
}
}
Я знаю, что это как-то связано с повторной отрисовкой, но Я не знаю, как его запустить, это отличается от того, как я это делаю сейчас.
Я использую рендеринг на стороне сервера, не уверен, пытаюсь ли я сделать что-то WASM с помощью серверный рендеринг
Я пробовал PeriodicTimer, Threading.Timer и пробовал что-то уже около 2 дней, и ничего не работает
Я' Я также пытался реализовать IDisposable с типами Timer, но Dispose всегда вызывается.
EDIT: с тех пор я также пытался создать новое приложение WASM и передавать данные между попытками. Это все еще не работает. Я официально в тупике
Подробнее здесь: https://stackoverflow.com/questions/787 ... sync-timer
Мобильная версия