代码很简单,如下
    public partial class MainForm : Form
    {
        Thread _Thread;
        int i = 0;        public MainForm()
        {
            InitializeComponent();
        }        private void MainForm_Load(object sender, EventArgs e)
        {
            this.progressBar1.Maximum = 10000;
            this.progressBar1.Minimum = 0;
        }        private void button1_Click(object sender, EventArgs e)
        {
            _Thread = new Thread(new ThreadStart(ThreadFunc));
            _Thread.Start();
        }        private void ThreadFunc()
        {
            for (i = 0; i < 10000; i++)
            {
                this.progressBar1.Value = i; 
            }
        }
    }
出现 线程间操作无效
看了很多文章,都乱七八招的,我知道线程之间不允许你操作我我操作你的事情,那怎么样操作UI线程的东西呢,那位高手帮我改下

解决方案 »

  1.   

    ref:
    http://blog.csdn.net/knight94/archive/2006/03/16/626584.aspx
      

  2.   

    http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
      

  3.   

    这个有许多经典的文章。给楼主参考几篇。
    http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misMultithreading.mspx
    http://www.microsoft.com/china/MSDN/library/netFramework/netframework/NFdnwinformsasyncui.mspx
      

  4.   

    最简单的解决方法:
    [STAThread]
            static void Main()
            {
                Form.CheckForIllegalCrossThreadCalls = false;//加上这句就可以了
                Application.Run(new MainForm());
            }
    这么做有什么坏处,不清楚