Вы можете использовать Invoke
, я изменил пример страницы counter
, чтобы проиллюстрировать это, вам понадобится некий объект DI-синглтон, чтобы избежать запуска процесса дважды.
Помните Blazor
- экспериментальный проект. Кроме того, этот ответ также экспериментальный подход.
@page "/counter"
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button class="btn btn-primary" onclick="@IncrementCount">Click me</button>
@functions {
int currentCount = 0;
void IncrementCount()
{
currentCount++;
}
protected override void OnInit()
{
Invoke(
//here your task.
async () =>
{
for(var i =0; i< 50; i++)
{
await Task.Delay(1000);
currentCount++;
StateHasChanged();
System.Console.WriteLine("Still running ...");
}
});
}
}