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

自VS2005开始,UI元素在不同线程中访问就受到限制了,当然你也可以解除这种限制

以下提供Framework3.0的解决方案发:

public partial class Window1 : Window
    {
        private delegate void DoTask();
        public Window1()
        {
            InitializeComponent();

            Thread t = new Thread(new ThreadStart(Start));
            t.Start();
           
        }
        private void Start()
        {
            System.Windows.Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new DoTask(DoMyTask));
        }
        private void DoMyTask()
        {
            //在此执行你的代码
        }
    }

如果是2.0的,你可以看看这篇文章

http://hi.baidu.com/aptsnail/blog/item/2c7e717a003407e92e73b388.html

你可能感兴趣的:(UI)