DispatcherTimer - 添加条件时不执行代码

时间:2014-06-09 14:00:39

标签: c# silverlight-4.0 dispatchertimer

当我添加条件或尝试在构造函数外部启动计时器时,DispatcherTimer不执行代码。

我遇到的问题是如果我在构造函数中启动DispatchTimer而没有条件我的图形层在单击按钮Show_ClickStuff之前添加。如果我不在构造函数中启动所有内容并将我的if条件放在Show_ClickStuff或_timer_tick中,我可以在代码上放置Break Points并观察定时器是否触及代码行但不执行代码行。如果我删除条件代码将执行。我尝试了各种各样的变化,但不能按照我需要的方式工作

使用System.Windows.Threading; .NET Framework 4.5 代码文件:.xaml.cs Silverlight 4

public Tool()
{
     InitializeComponent();

      _timer1 = new DispatcherTimer();
      //_timer1.Start();
      _timer1.Interval = TimeSpan.FromMilliseconds(4000);
      _timer1.Tick += new EventHandler(_timer_tick);
}

private void Show_ClickStuff(object sender, RoutedEventArgs e)
        {
            ToggleStuff();
            if (showStuff.IsChecked == true)
            {
                //Timer_Toggle(this, null);
                //_timer1 = new DispatcherTimer();
                //_timer1.Start();
                //_timer1.Interval = TimeSpan.FromMilliseconds(4000);
                //_timer1.Tick += new EventHandler(_timer_tick);
                _timer1.Start();
            }
            else if (!_timer1.IsEnabled && showStuff.IsChecked == true)
            {
                _timer1.Start();  
            }
            else
            {
                _timer1.Stop();
            }

        }

private void _timer_tick(object sender, EventArgs e)
        {
                _map.Layers.Remove(_stuffLayer);
                GetStuff();
                _map.Layers.Add(_stuffLayer);
        }

0 个答案:

没有答案