none
DipatcherTimer与Timer的比较疑问? RRS feed

  • 问题

  • public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
    
                Thread t = new Thread(new ThreadStart(Test));
                t.IsBackground = true;
                t.Start();
            }
    
            void Test()
            {
                DispatcherTimer dispatcherTimer = new DispatcherTimer();
                dispatcherTimer.Interval = new TimeSpan(0, 0, 2);
                dispatcherTimer.Tick += timer_Tick;
                dispatcherTimer.Start();
    
    
                System.Timers.Timer timer = new System.Timers.Timer();
                timer.Interval = 1000;
                timer.Elapsed += aTimer_Elapsed;
                timer.Start();
    
            }
    
            void aTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
            {
                Console.WriteLine("Timer");
            }
    
            void timer_Tick(object sender, EventArgs e)
            {
                Console.WriteLine("DispatcherTimer");
            }
        }

    新建WPF工程,然后写了如上的代码:

    我的疑问是在线程中我写了DispatherTimer计时器与Timer计时器

    然后开启;可是在DispatherTimer计时器里的方法我打断点在:

    Console.WriteLine("DispatherTimer");上却根本不执行

    难道是dispatherTimer计时器未开启成功吗?

    相比较Timer却可以成功执行;请运行比较下;

    然后解释下我的疑问,谢谢了!!!

    • 已移动 Bob Shen 2012年10月23日 3:38 (发件人:Visual C#)
    2012年10月19日 8:40

答案

全部回复