Сейчас я работаю над проектом Blazor и сталкиваюсь с ошибкой. План состоит в том, чтобы обновлять компонент каждую секунду, пока выполняется обновление для l oop. Моя проблема немного сложна, поэтому я воспроизвел эту ошибку в другом проекте:
Файл Calculate.cs, в котором выполняются вычисления:
public class Calculate
{
public void Calc(Index index)
{
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
index.Update(i);
}
}
}
Файл index.razor:
<button class="btn btn-primary" @onclick="Test">Click me</button>
<p>Test number: @testNumber</p>
@code
{
private int testNumber;
Calculate c = new Calculate();
public void Test()
{
c.Calc(this);
}
public void Update(int i)
{
testNumber = i;
Debug.WriteLine(i);
}
}
После тестирования консоль отладки печатает числа, как и должно, каждую секунду, начиная с 0-9, но открытый дисплей Blazor печатает только 9, когда вычисления и 10 секунд завершены.