我现在要使用多线程  A线程更新进度条 B线程做后台操作不是很懂BackgroundWorker的原理  感觉它还是顺序的执行程序  求解释。。比如 我现在只要求A线程按时间更新进度条 同时B线程做事情  该怎么做呢?高手教教我撒~~

解决方案 »

  1.   

    private void button10_Click(object sender, EventArgs e)
    {
        progressBar1.Value = progressBar1.Minimum;
        Thread t = new Thread((ThreadStart)delegate
            {
                while (progressBar1.Value<progressBar1.Maximum)
                {
                    this.Invoke((EventHandler)delegate { progressBar1.Value++; });
                    Thread.Sleep(50);//延迟以便看到效果
                }
            });
        t.IsBackground = true;
        t.Start();
    }
      

  2.   

    有点懂了。
    调用Invoke方法,可以避免线程外调用异常,及未停止线程时关闭窗口时引发主窗口异常。