WPF 的 System.Threading.Timer 有些问题, 调试了2天才发现是他的问题, 但是找不到原因.
我使用 new System.Threading.Timer(TimerCallbacefun, null, 300,0);
void TimerCallbacefun(object state)
{
this.Dispatcher.BeginInvoke((ThreadStart)delegate
{
this.container.Children.Clear();
for (int i=0;i<6;i++)
{
mb.Page.Presentation = m_page.Presentation;
mb.Page = m_page;
FrameworkElement uiEle = new Canvas(){
Top=100*i,
Height=100,
width=100
};
this.container.Children.Add(uiEle);
}
});
}
这么做是为了延时异步加载, 但是不是每次都能创建所有的Canvas, 不知道到底什么问题.
解决方法: 改为同步创建, 或者使用线程异步创建都能成功.