如何在WPF中使用Dispatcher来制作计时器

时间:2013-01-30 18:29:56

标签: wpf timer dispatcher

我是个noobi 我有这个问题,我需要为我的程序制作一个计时器,当用户点击一个特定的按钮时启动。然后将倒计时输出到标签

提前致谢

2 个答案:

答案 0 :(得分:1)

这是从生产中拉出来的,所以我确信它有效:

...
     _Timer = new DispatcherTimer();
     _Timer.Interval = TimeSpan.FromMilliseconds(125);
     _Timer.Tick += new EventHandler(_Timer_Tick);
     _Timer.IsEnabled = true;
     _Timer.Start();
...

    void _Timer_Tick(object sender, EventArgs e)
    {
         try {
           ...Do your thing here
         } catch (Exception x){
             Debug.WriteLine("Error: "+x);
         }
    }

答案 1 :(得分:1)

DispatcherTimer位于System.Windows.Threading命名空间。

这样的事情应该有效:

public partial class MainWindow : Window
{
    int count = 0;
    System.Windows.Threading.DispatcherTimer tmr = new System.Windows.Threading.DispatcherTimer();
    public MainWindow()
    {
        InitializeComponent();
        tmr.Interval = new TimeSpan(0, 0, 2);
        tmr.Tick += new EventHandler(tmr_Tick);
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        tmr.Start();
    }

    void tmr_Tick(object sender, EventArgs e)
    {
        label1.Content = count += 1;
    }

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        tmr.Stop();
    }
}