使用ProcessBar时,我有一个非常复杂的循环,控制ProcessBar的value,但是那个程序有些过于复杂了,导致占用的CPU过高,因此ProcessBar就始终停在了一个值上,一直到循环结束,再继续运行。这样的问题怎样解决?不但循环可以正常同时ProcessBar也可以很流畅的运行?

解决方案 »

  1.   

    是WinForm?
    还是Web上的?是WinForm的好说了,在循环中用Application.DoEvents()就是了.
    Web的,不知道:)
      

  2.   

    你在web上用progressbar  有这控件吗
      

  3.   

    一个变量来存放要更改的Value的值(int val),然后用一个新的线程对你要进行的操作进行运算,例如调用方法A,然后方法A就改变val的值,然后另外一个Timer每秒钟十次地对ProcessBar.Value进行刷新(processBar1.Value=val;),如果这个过程还需要有开始和结束的标志,还可以声明一个bool变量,线程开始之前它为false,表示正在进行运算,而方法A在最后结束的时候将那个bool改为true,这个时候Timer也就可以根据它的值进行适当地调整 int val;//存放要更改的value的值 
    bool finished=true;//是否正在进行 
    Thread t;//连接到要进行的运算,对val和finished进行更改 
    Timer timer;//每秒进行10次根据val和finished的值进行适当地调整 Timer的使用十分简单,不知道你会不会用Thread(位于System.Threading) Thread t=new Thread(new StartInfo(MethodName)); 
    t.Start();//启动线程 
    其中MethodName是一个方法的名字,那个方法必须是没有返回,没有参数的方法