当我添加条件或尝试在构造函数外部启动计时器时,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);
}