如下代码,为什么动作条总是没加载满的状态下关闭呢。
从代码上看的话它的Value已经是100了。private void FormLoad_Load(object sender, EventArgs e)
        {
            Thread t = new Thread(new ThreadStart(Loading));            t.Start();
        }        private void Loading()
        {
            for (int i = 1; i <= 20; i++)
            {
                Thread.Sleep(100);                SetProcessBarValue(i*5);
            }            this.Invoke(new MethodInvoker(delegate() {
                this.Close();
            }));        }        private void SetProcessBarValue(int value)
        {
            SetValueCallback delega = new SetValueCallback(SetProcessBarValue);            this.Invoke(delega, new object[] { value });
        }

解决方案 »

  1.   

    有一段代码错了private void SetProcessBarValue(int value)
            {
                if (this.progressBar1.InvokeRequired)
                {
                    SetValueCallback delega = new SetValueCallback(SetProcessBarValue);                this.Invoke(delega, new object[] { value });
                }
                else
                {
                    this.progressBar1.Value = value;
                }
            }
      

  2.   

    是多线程。找到原因了。设置好Step,用PerformStep执行就OK
      

  3.   

    但是,做个标记为。当Value值100之后,把这个Value值设置为0,也就是我想动作条能够循环执行。
      

  4.   

    ProgressBar.Style = ProgressBarStyle.Marquee
      

  5.   

    不是这个 ,这样的话看不到真是的动作条。这个Style还是要Blocks的