Blazor: Как я могу начать цикл со временем? Пример - генерация одного вопроса через 2 минуты - PullRequest
0 голосов
/ 04 марта 2020

У меня 10 вопросов с несколькими ответами. Я хочу генерировать новый вопрос через каждые 2 минуты. А также показывать время пользователю с каждым вопросом. Как я могу достичь этой цели?

Я не могу показать время

<div>
    <h2> Time left : @*Here I want to show Time*@ </h2>
</div>

<div class="row">
    @if (id != 0)
    {
         @*This is Question Component & Here I pass the Question id *@
        <QuestionCard Id="@id.ToString()"></QuestionCard>
    }
    else
    {
        <MatH1>Loading . . . . .</MatH1>
    }
</div>


@code {


    System.Timers.Timer aTimer = new System.Timers.Timer();
    private int id { get; set; } = 0;
    protected override async Task OnInitializedAsync()
    {
        await Task.Run(() => Start());

    }
    void Start()
    {
        //aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        id = 2;  //I Just pass manually Question id
        aTimer.Interval = 5000;
        aTimer.Enabled = true;
        aTimer.Start();
    }
}

Я совершенно новичок в Blazor. Если есть ошибки, пожалуйста, прости.

1 Ответ

1 голос
/ 05 марта 2020

Я сделал это, чтобы показать Время

<p> @TimeLeft </p>

@code{
    TimeSpan TimeLeft = new TimeSpan(0, 0, 15);
    string displayText = "";

    bool show=false;

    void Start()
    {
        Task.Delay(1000);
        displayText = "Start Time";
        show = true;
        Timer();


    }

    async Task Timer()
    {
        while (TimeLeft > new TimeSpan())
        {
            await Task.Delay(1000);
            TimeLeft = TimeLeft.Subtract(new TimeSpan(0, 0, 1));
            StateHasChanged();
        }


        await AfterTime();
        StateHasChanged();
    }

    Task AfterTime()
    {
        displayText = "Time Expire";
        TimeLeft =  new TimeSpan(0, 0, 15);
        return Task.CompletedTask;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...