c# - 在 Blazor 应用中完成计时器后显示消息
问题描述
我在剃刀组件上的 Blazor 应用程序中制作了一个计时器。它工作正常,但我想添加其他内容,例如当计时器完成时显示一条消息,例如“完成”或“计时器完成”或任何其他消息。这是代码:
@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();
}
}
}
解决方案
在您的剃须刀组件中:
@if (x < 0)
{
<div class="alert alert-info">Timer is done</div>
}
推荐阅读
- javascript - 使用 Selenium 和 Python 将 html 发送到富文本框的问题
- c# - 具有集合绑定的 UserControl 始终返回 Null
- python-3.x - 按列表长度过滤
- kotlin - MockK 监视 Kotlin 中的顶级私有函数
- amazon-web-services - Cloudformation yaml - 在 AutoScalingGroup 资源中生成实例列表
- typescript - AWS Javascript SDK v3 - Typescript 由于错误 TS2304 无法编译:找不到名称“ReadableStream”
- php - 运行 php artisan 迁移时出现问题
- r - 使用模型摘要创建回归输出表
- swift - 将结构数据用作源时,SwiftUI Picker 不会“选择数据”
- c# - WPF:垂直滚动数据网格时出现绑定错误