解决方案 »

  1.   

    看不懂这有什么意义,这肯定比在主线程直接简单地运行 for 循环还慢啊。
      

  2.   


    //在构造函数加上这句话,允许跨线程访问组件,然后就不用Invoke了。
    CheckForIllegalCrossThreadCalls = false;
      

  3.   

    Invoke是发个消息传委托到界面线程去处理……你这一下就发了上千个消息,当然慢了,难道线程切换不要时间的?
    没事少和界面线程通讯,人眼一般看每秒24帧就够了。你后台更新比这更频繁的话先堆着,用户不需要那么频繁的更新。
      

  4.   


    我要做的时一个数据处理的程序,想实时的显示数据处理进度,有什么好办发吗
    用个progressbar显示进度信息
      

  5.   

     Action pAction = new Action(() => { ProBar.Maximum = 2000; });
                    GUIControl ProBarControl = new GUIControl((int x) => ProBar.Value=x);
                    int LoopCount = 1;
                    if (ProBar.InvokeRequired)
                    {
                        ProBar.BeginInvoke(pAction);
                    }
                    else
                    {
                        ProBar.Maximum = 2000;
                    }
                    while (大于2000条数据)
                    {
                       LoopCount++;
                        while (大于20条数据)
                        {
                           //每次写一条数据
                        }
                        if (ProBar.InvokeRequired)
                        {
                            ProBar.BeginInvoke(ProBarControl, new object[] { LoopCount });
                        }
                        else
                        {
                            ProBar.Value++;
                        }   
                    }
      

  6.   

    我要做的时一个数据处理的程序,想实时的显示数据处理进度,有什么好办发吗
    用个progressbar显示进度信息
    像这种怎么处理呢
      

  7.   

    用个progressbar显示进度信息
    其实一般用个进度条就可以看进度了,只不过只能看到百分比
    如果想做的好点,可以再加个按钮,显示详细,点了之后显示个richtextbox来显示详细的信息,还可以再隐藏回去控制台程序运行的时候会不断的窗口上刷信息,那是因为它没有别的办法,只能这样做
    而窗口程序,控件丰富,可以用各种形式来展现
    用户关心详细信息,就给他看详细信息,
    用户不关心,就隐藏掉,只记录到后台的一个结构里,等用户想看的时候再放到界面上去
      

  8.   

    我用了progressbar还是执行的很慢的,耗时很长
      

  9.   

    你可以做个变量控制,后台数据改变了多少次,才去执行一次刷新
    或者后台数据先放到个全局变量里,用timer每秒显示一次最新的数值
    而不是后台数据每变化一次,都要往前台控件给一次最新的值
      

  10.   

    如果你的数据查询是一个SQL语句,返回一大堆查询结果,没办法显示进度
    要么返回数据,要么没返回数据,到底需要多长时间能返回,那是不确定的要么你设计成分多次查询,每次查询500条或1000条,然后根据总的数量来显示进度
    要么干脆加个旋转的沙漏,告诉用户,正在查询,没有死机,就完了
      

  11.   

    哦,好的,谢了,还想请教你个问题,如果是数据查询的话,怎么才能显示查询进度
    用datareader可以。fill是不行的。