两个progressbar控件,一个button如何用线程方式在按了button后两根进度条一起给我挪起来!!!
要有代码实例
在线等在线测试立马给分!

解决方案 »

  1.   


        public partial class Form1 : Form
        {
            delegate void SetValueCallback(ProgressBar ctl,int value);
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.progressBar1.Value = 0;
                this.progressBar1.Maximum = 10000;
                this.progressBar2.Value = 0;
                this.progressBar2.Maximum = 10000;
                Thread t1 = new Thread(new ParameterizedThreadStart(ThreadExecute));
                Thread t2 = new Thread(new ParameterizedThreadStart(ThreadExecute));
                t1.Start(progressBar1);
                t2.Start(progressBar2);
            }
            private void ThreadExecute(object ctl)
            {
                for (int i = 0; i <= 10000; i++)
                {
                    SetValue((ProgressBar)ctl, i);
                    Thread.Sleep(1);
                }
            }
            private void SetValue(ProgressBar ctl, int value)
            {
                if (ctl.InvokeRequired)
                {
                    SetValueCallback d = new SetValueCallback(SetValue);
                    this.BeginInvoke(d, new object[] { ctl, value });
                }
                else
                {
                    ctl.Value = value;
                }
            }
        }