Hintergrundservice -Ereignis zum Auslösen von UI -Update im Blazor ServerC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Hintergrundservice -Ereignis zum Auslösen von UI -Update im Blazor Server

Post by Anonymous »

Frage im Voraus: Ich suche nach einer Möglichkeit, ein UI -Update aus einem Hintergrundservice in einer Blazor -Server -App auszulösen. Die Daten in der DB stammen aus einer externen API und werden vor dem Speichern/Aktualisieren transformiert/berechnet. Da dies ein laufender Prozess und ein agnostisch Benutzer ist, habe ich dies mit einem Hintergrundservice implementiert (zum ersten Mal mit Hintergrunddiensten).

Code: Select all

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);
}
}
}
Der Hintergrundservice funktioniert in Bezug auf die Aktualisierung der Daten korrekt. Während einiger Iterationen des Datenaktualisierungsprozesses können Informationen in der Benutzeroberfläche aktualisiert werden. Gibt es eine Möglichkeit, ein UI -Update aus dem Hintergrundservice auszulösen? Mein erster Gedanke war, dass ich möglicherweise Ereignisse verwenden kann, um dies zu erreichen und die Benutzeroberfläche für diese Ereignisse abonnieren zu lassen, aber ich konnte keine Informationen finden, die diese Theorie unterstützen. Ich suche jedoch eine effizientere, reaktive (keine Zeitverzögerung zwischen Update -Ereignis und Anzeige) und wohl "richtige" Weise.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post