Событие фонового обслуживания для запуска обновления пользовательского интерфейса на сервере BlazorC#

Место общения программистов C#
Anonymous
 Событие фонового обслуживания для запуска обновления пользовательского интерфейса на сервере Blazor

Сообщение Anonymous »

Вопрос впереди: Я ищу способ запустить обновление пользовательского интерфейса из фонового обслуживания в приложении Blazor Server. Данные в БД поступают из внешнего API и преобразуются/рассчитываются до хранения/обновления. Поскольку это постоянный процесс и агностик пользователя, я реализовал это с помощью фонового обслуживания (впервые с использованием фоновых служб).

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

public class DataManagementService(IServiceScopeFactory scopeFactory, IApiService apiService, IEncryptionService encryptionService) : BackgroundService
{
private readonly IApiService _apiService = apiService;
private readonly IEncryptionService _encryptionService = encryptionService;

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
Log.Information("================= DataManagementService Starting =================");
Log.Information("================= Connecting to API =================");

await ConnectToApi();

while (!stoppingToken.IsCancellationRequested)
{
Log.Information("================= Data Update Starting =================");
await UpdateData();
Log.Information("================= Data Update Completed =================");
await Task.Delay(60000, stoppingToken);
}
}
}
FounalService правильно функционирует в отношении обновления данных. Во время некоторых итераций процесса обновления данных может быть информация, которую необходимо обновить в пользовательском интерфейсе. Есть ли способ запустить обновление пользовательского интерфейса из фонового сервиса ? Первоначальная мысль заключалась в том, что я могу использовать события для достижения этого и подписан пользовательский интерфейс на эти события, но я не смог найти какую -либо информацию, которая поддерживает эту теорию. Тем не менее, я ищу более эффективный, реактивный (без задержки между событием обновления и отображением) и, возможно, «правильным» способом.>

Подробнее здесь: https://stackoverflow.com/questions/794 ... zor-server

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