跨线程不能访问控件,但是跨线程可以调用方法
这里有什么本质的区别吗,详细讲讲

解决方案 »

  1.   

    这都是啥???跨线程也可以访问UI,只不过要用 Control.Invoke(delegate, object) 而已。
      

  2.   

    每个UI控件都有自己的消息队列,UI线程一个单独的STA线程,不管是Windows Forms还是新的WPF,都不允许其他线程直接访问UI控件资源,或者用一个非STA线程来创建UI。因为UI十一种操作系统认可的特殊线程。WinForms用Control.Invoke/BeginInvoke WPF用Dispatcher.Invoke/BeginInvoke来访问UI线程资源