int countSecond = 5;
private void Button_Click(object sender, RoutedEventArgs e)
{
DispatcherTimer disTimer = new DispatcherTimer();
disTimer.Interval = new TimeSpan(0, 0, 0, 1); //参数分别为:天,小时,分,秒。此方法有重载,可根据实际情况调用。
disTimer.Tick += new EventHandler(disTimer_Tick); //每一秒执行的方法
disTimer.Start();
}
void disTimer_Tick(object sender, EventArgs e)
{
if (countSecond == 0)
{
MessageBox.Show("结束");
}
else
{
//判断TextBox是否处于UI线程上
if (TextBox.Dispatcher.CheckAccess())
{
TextBox.Text = countSecond.ToString();
}
else
{
TextBox.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() =>
{
TextBox.Text = countSecond.ToString();
}));
}
countSecond--;
}
}