【发布时间】:2021-10-29 00:14:48
【问题描述】:
我是 blazor wasm 的初学者,我想办法从我的后台服务(IHosteadService - 在我的 Blazor.Server 项目中)更新我的仪表板页面(在 Blazor.Client 项目中)。
基本上,我正在寻找从后台服务到我的仪表板 UI 的事件回调。
使用 .NET5 blazor Wasm(托管 asp.net 核心)
我的 bg 服务代码:
internal class MessageConsumer: BackgroundService
{
private readonly ILogger<MessageConsumer> _log;
private readonly IConsumer<string, int> _consumer;
public MessageConsumer(ILogger<MessageConsumer> log, IConsumer<string, int> consumer)
{
_log = log;
_consumer = consumer;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Yield();
var i = 0;
while (!stoppingToken.IsCancellationRequested)
{
var consumeResult = _consumer.Consume(stoppingToken);
_log.LogInformation(consumeResult.Message.Key + " - " + consumeResult.Message.Value);
/** Here I want to NOTIFY my dashboard UI ***/
if (i++ % 1000 == 0)
{
_consumer.Commit();
}
}
}
public override void Dispose()
{
_consumer.Dispose();
base.Dispose();
}
}
请指教。
【问题讨论】:
-
你试过2路绑定吗?从后台类更新实体类(共享项目)并在客户端仪表板中绑定它。我不确定,但你可以试一试。
标签: asp.net-core .net-core blazor .net-5 blazor-webassembly