我在我的项目中使用了System.Threading.Timer,像下面的代码:
async Task Timer()
{
timer = new System.Threading.Timer((_) =>
{
TimeSpan span = DateTime.Now.Subtract(ed);
Time = (TimeSpan.FromTicks(span.Ticks).ToString()).Substring(0, 8);
InvokeAsync(() =>
{
StateHasChanged();
});
}, null, 0, 1000);
}
我应该如何改变它显示定时器在天,24小时后?提前感谢
时间跨度滚动到天的水平,他们不会停止计算小时。如果您有一个代表23:59:59的时间跨度,并且您在其上添加了秒,那么您得到的不是24:00:00而是1 day 00:00:00
如果你想让它永远以小时为单位计算,你必须自己把天乘以小时
$"{t.Days*24+t.Hours}:{t.Minutes}:{t.Seconds}"
你也可以把总小时数的小数部分去掉
$"{(int)t.TotalHours}:{t.Minutes}:{t.Seconds}"
$"{t.TotalHours:F0}:{t.Minutes}:{t.Seconds}"