WPF的Timer问题

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, 不知道到底什么问题.

解决方法: 改为同步创建, 或者使用线程异步创建都能成功.

原文地址:https://www.cnblogs.com/yinpengxiang/p/1522278.html