我正在编写一个应用程序,它使用计时器在屏幕上显示某些事件发生时的倒计时。我想重用计时器,因为它对于应用程序中的一些操作会很方便,因此我指定了要环绕计时器的单词。例如,以下函数调用:
CountdownTimer(90, "You have ", " until the computer reboots");
会显示:
You have 1 minute 30 seconds until the computer reboots
然后倒计时。
我正在使用以下代码:
private void CountdownTimer(int Duration, string Prefix, string Suffix)
{
Countdown = new DispatcherTimer();
Countdown.Tick += new EventHandler(Countdown_Tick);
Countdown.Interval = new TimeSpan(0, 0, 1);
CountdownTime = Duration;
CountdownPrefix = Prefix;
CountdownSuffix = Suffix;
Countdown.Start();
}
private void Countdown_Tick(object sender, EventArgs e)
{
CountdownTime--;
if (CountdownTime > 0)
{
int seconds = CountdownTime % 60;
int minutes = CountdownTime / 60;
Timer.Content = CountdownPrefix;
if (minutes != 0)
{
Timer.Content = Timer.Content + minutes.ToString() + @" minute";
if (minutes != 1) { Timer.Content = Timer.Content + @"s"; }
Timer.Content = Timer.Content + " ";
}
if (seconds != 0)
{
Timer.Content = Timer.Content + seconds.ToString() + @" second";
if (seconds != 1) { Timer.Content = Timer.Content + @"s"; }
}
Timer.Content = Timer.Content + CountdownSuffix;
}
else
{
Countdown.Stop();
}
}
我如何使其同步运行?例如,我希望以下命令等待 90 秒,然后重新启动:
CountdownTimer(90, "You have ", " until the computer reboots");
ExitWindowsEx(2,0)
而目前它立即调用重新启动。
非常欢迎任何指点!
Thanks,
Ben