【发布时间】:2015-01-21 16:04:17
【问题描述】:
我在 buttonClick (WPF) 处理程序上有这个愚蠢的 C# 代码,我想知道为什么文本框只显示最后一个值(=0) 而没有前一个值(9-1)。当我在控制台应用程序中测试代码时,我在命令行中看到了所有值。(我是 C#、WPF 的初学者)
谢谢
private void clock_Click(object sender, RoutedEventArgs e)
{
DateTime clicktime = DateTime.Now;
int nextsecont = DateTime.Now.Second + 1;
int now = clicktime.Second;
int timer = 10;
do
{
if (nextsecont == DateTime.Now.Second)
{
now++;
timer--;
nextsecont++;
textbox3.Text = timer.ToString();
}
} while (nextsecont <= (clicktime.Second + 10));
}
PS:我知道有更好的方法可以做到这一点(例如使用计时器),但这不是重点。 对不起我的英语..
解释:现在我看到 10 秒的初始值,然后我看到 0。我没有看到中间值..
【问题讨论】:
-
数字时钟不显示最后 10 分钟的相同原因:它只显示当前值
-
不以“更好的方式”来做这件事正是重点。您没有使用计时器,因此您所做的只是让您的代码过度循环(从而占用 CPU)10 秒。 UI 从来没有时间刷新。使用计时器,它会起作用。