你确定你使用 BACKGROUNDWORKER的代码没有问题。它可以完全满足你的要求。
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker.aspx

解决方案 »

  1.   

    多线程注意 sleep  。
    一直无间隔循环  会导致cpu猛飙。 就会卡界面
      

  2.   

    我是直接把TXT里面内容导入到一个ARRAYLIST(tmplist)里面,然后再调用 ReportProgress,使用listbox.Items.AddRange(tmplist.ToArray());
      

  3.   

    也可能是这个原因,我试下加个THREAD.SLEEP上去
      

  4.   

    正常的backgroundworker肯定可以吧。。数据提交给listbox是在change里边修改,不是直接在listbox里边添加
      

  5.   

    我是直接把TXT里面内容导入到一个ARRAYLIST(tmplist)里面,然后再调用 ReportProgress,使用listbox.Items.AddRange(tmplist.ToArray());
    不要用ArrayList,改成List<string>,防止装箱拆箱
    几千万数据一下都放到Listbox里,这有什么意义吗,谁能看的过来
    避免一下把那么多数据都放到窗口控件里去,可以做分页,或根据滚动条位置动态加载数据
      

  6.   

    还有,这么大的数据量,就不要用txt来存放了,应该使用数据库
    然后查询的时候加条件,避免一次性把所有数据都读出来显示,完全没有任何意义用户关心的不过是最新数据,特定数据和统计数据,谁会没事把所有数据弄出来自己一个一个看
      

  7.   

    txt文本存放这个是有关部门规定的……我们只是对应接回来做……没办法……