调用线程必须为 STA,因为许多 UI 组件都需要

原创 2011年01月20日 16:33:00

   Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc));
   NetServer.Start();

 

   WPF工程里,此线程不可以操作UI元素,避免方法如下:

 

1、public delegate void DeleFunc();
     public void Func()
     {

          //使用ui元素    

    }

   

    线程函数中做如此调用:

   System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
                                                        new DeleFunc(Func));

    即可。

 

2、 Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc));
      NetServer .SetApartmentState(ApartmentState.STA);
      NetServer .IsBackground = true;

      NetServer.Start();
     

      线程函数中做如此调用:

     System.Windows.Threading.Dispatcher.Run();
     即可。

调用线程必须为 STA,因为许多 UI 组件都需要

WPF中,代码中准备控制控件内容时,有时会报错:调用线程必须为 STA,因为许多 UI 组件都需要我知道,在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一些特别...

调用线程必须为 STA,因为许多 UI 组件都需要

Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc));    NetServer.Start();    WPF工...
  • Samsone
  • Samsone
  • 2012年01月10日 14:20
  • 5924

调用线程必须为 STA,因为许多 UI 组件都需要

原文链接:点击打开链接 Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetS...

调用线程必须为 STA,因为许多 UI 组件都需要

refs: http://blog.csdn.net/leftfist/article/details/41747255?utm_source=tuicool WPF中,代码中准备控制控件内...

WPF 调用线程必须为 STA,因为许多 UI 组件都需要

WPF中,代码中准备控制控件内容时,有时会报错: 调用线程必须为 STA,因为许多 UI 组件都需要 我知道,在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那...

调用线程必须为 STA,因为许多 UI 组件都需要

http://blog.csdn.net/sshhbb/article/details/6155246 Thread NetServer = new Thread(new ThreadSta...

调用线程必须为 STA,因为许多 UI 组件都需要

class Mainclass { [STAThread] static void Main() { Applicati...

Win32函数封装(二)---控制台输出(多用于调试),文件读写,dx注册

// DebugTool.h: interface for the CDebugTool class.//兰海 lanhai(guoliangw@hotmail.com)  http://blog.c...
  • lanhai
  • lanhai
  • 2007年06月12日 11:24
  • 766

c# wpf下的多线程操作窗口UI控件的过程

 2010-04-11 01:22:10|  分类: IT |  标签: |举报 |字号大中小 订阅 wpf下的多线程操作窗口UI控件的过...

WPF 如何在线程中打开子窗体

最近遇到一个问题,在wpf程序的某个线程中打开子窗体时显示“调用线程必须为 STA,因为许多 UI 组件都需要”,这是典型的子线程更新UI异常问题了,解决方法是用Dispatcher的invoke方法...
  • acapt
  • acapt
  • 2016年03月03日 20:51
  • 569
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调用线程必须为 STA,因为许多 UI 组件都需要
举报原因:
原因补充:

(最多只允许输入30个字)