当前位置:编程学习 > C#/ASP.NET >>

wpf多线程问题?

wpf中<frame source="page.xaml">
page.xaml中有此句:
System.Threading.Thread.Sleep(5000);

窗体加载的时候会整个冻住

如果这么写:
 Thread newWindowThread = new Thread(new ThreadStart(frame_movie1));
 newWindowThread.SetApartmentState(ApartmentState.STA);
 newWindowThread.IsBackground = true;
 newWindowThread.Start();

private void frame_movie1()
{
     qq q = new qq();
     this.Dispatcher.Invoke(new Action(() =>
     {
          this.mf.Content = q;}));
     }
}

会出错,说不在一个线程。。。

如果这么写

delegate void make_frame();
make_frame make_frame_movie = frame_movie1;
make_frame_movie.BeginInvoke(null, null);

还会出错,说线程不是SAT

这是为什么啊

我只是想给frame加载page页的时候做一个会显示正在加载的提示,然后我希望page页可以独立的运行在一个线程上,要怎么做呢?
--------------------编程问答-------------------- 没人来看看吗,自己顶个先 --------------------编程问答-------------------- 还是没人答,继续顶个 --------------------编程问答-------------------- 参考 --------------------编程问答-------------------- 有没有人,给个简单的例子呀 --------------------编程问答-------------------- 我佩服,没玩过。 路过学习。 --------------------编程问答-------------------- 继续看,有没人有更多的资料~~~~~ --------------------编程问答--------------------
引用楼主 cyangluiqin 的回复:
private void frame_movie1()
{
  qq q = new qq();
  this.Dispatcher.Invoke(new Action(() =>
  {
  this.mf.Content = q;}));
  }
}


是不是是因为你new qq对象和执行的Action委托不是一个线程吧。
应该吧new qq也放在委托中呢? --------------------编程问答-------------------- 我黑了,我就是想把new qq放在另一个线程 --------------------编程问答-------------------- 看看这个  。。。
http://msdn.microsoft.com/zh-cn/library/ms741870.aspx
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,