我在Form_load事件里开线程做了一些工作,不想让界面处于假死的状态,想加个进度条让界面变得动态一点,怎么能让进度条不影响我进程的执行,而且还能让进度条有动态执行的效果,请各位指点一下。

解决方案 »

  1.   

    我在Form_load里已经开了线程池去执行其他的任务了,在另外开一个吗?
      

  2.   

    csdn上再有点专业开发,相当于已经转正3个月的程序员的经验,的问题就好了。
      

  3.   

    把你的工作线程设为后台线程,在工作线程中可以更新进度条,参考如下代码:
    private void button1_Click(object sender, EventArgs e)
    {
        Thread workThread = new Thread(DoWork);
        workThread.IsBackground = true;
        workThread.Start(0);
    }private void DoWork(object para)
    {
        while (true)
        {
            // 主要工作写在这里
            Action updateProgress = new Action(delegate()
                    {
                        this.Text = DateTime.Now.ToString("HH:mm:ss");
                        //更新进度条的代码写在这里
                    });
            if (InvokeRequired)
            {
                 Invoke(updateProgress);
            }
            else
            {
                updateProgress.Invoke();
            }
            Thread.Sleep(1000);
        }
    }
      

  4.   

    初学c#不到3个月时间,好多.net下的特有机制都不太理解,如果问题不值得您一答,你完全可以无视,不要在这整些没用的。本来csdn就是个交流的平台,都有初学者和菜鸟,如果按你那么说的话,我觉得您可以跟蒋先生怎么地,来个“巴菲特式的午餐”,商讨一下,在新开个微软高级工程师专区,那样的话,我想你再也不用被我们这些菜鸟的问题所纠结了,是吧?