Отображение сообщения после завершения таймера в приложении Blazor - PullRequest
1 голос
/ 21 марта 2020

Я сделал таймер в приложении Blazor на компоненте бритвы. Он работает нормально, но я хочу добавить что-то еще, например, когда таймер закончен, покажите сообщение, например, «Fini sh» или «Таймер завершен» или любое другое сообщение. Вот код:

@page "/Counting"
<h1>Counter</h1>   
<p>Current count: @_currentCount</p>
<p>@value</p>
<p>Stop: @stop</p>
<p>Date: @date</p>
<p>diff: @x</p>

@code {
Timer _updateTimer;
int _currentCount = 0;
TimeSpan value= new TimeSpan(0,0,0);
DateTime date;
DateTime stop;
double x;

public void Dispose()
    {
       //_updateTimer.Dispose();
    }
  protected override async Task OnInitializedAsync()
{
  _updateTimer = new Timer(state => { InvokeAsync(UpdateCounter); }, null, 0, 500);
  await Counter();
}
 async Task UpdateCounter()
{
    //_currentCount = 0;
   //await Task.Delay(1000);
   _currentCount++;
   await Task.Delay(1000);
   //_currentCount++;
   StateHasChanged();
 }
  async Task Counter()
{
   while (true)
{
   date = DateTime.Now;
   stop = new DateTime(2020,3,21, 12,20,0);
   value = value.Add(new TimeSpan(0, 0, 1));
   x = (stop - date).TotalSeconds;
   if (x < 0  )
        {
            return;
        }
       await Task.Delay(1000);
       StateHasChanged();
     }
    }
   }  

1 Ответ

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

В вашем бритвенном компоненте:

@if (x < 0)
{
    <div class="alert alert-info">Timer is done</div>
}
...