我在一个项目中需要创建很多的显示列表,其中有一些显示列表是需要事先读文件,然后再创建的,因此创建显示列表的时间会有点长。
请问是否可以用几个线程同时创建列表?
如果不行,请问有什么替代的方法么?谢谢

解决方案 »

  1.   

    多用几个线程创建显示列表???
    晕.那不更慢了..还多了线程调度的时间....如果说是影响主界面,那开一个线程读完创建所有的就可以了..
    我没试过在线程中创建行不行...
    LZ清楚线程操作么? 如果清楚,把主线程定义的变量传过去自己试下就好了..
    其中有一些显示列表是需要事先读文件,然后再创建的,因此创建显示列表的时间会有点长。效率应该是因为读文件降下来的撒,所以想办法优化你的文件数据...
    眼睛很好欺骗...真的有那么多数据量吗?多少MB的??
      

  2.   

    C\C++读文件已经是很快的咯..
    C#创建的类会不会很大而浪费时间就不知道了..应该也是很快的.ms不会把一些常用的类设计的复杂而降低速度..
    30万/2 条直线 再 * 30个文件.... 是很多了...
    那就没办法了..
    开线程不会加速 就一个CPU,你让它全力工作一个线程已经是最快的.平常开线程一般都是为了不影响主界面工作的...但线程里的工作完成还是要等那么长的时间...要么在开个线程完成列表,然后主界面弄点花哨的东西转移下注意力...等待线程里列表创建完成.
    要么就想办法简化你的文件数据了...
    另外读文件,一次性读的越大越好...如果你30万行,你分30万次一行一行 几个字节几个字节读完,
    那谁都会崩溃的...硬盘读取本来就是一块一块读出来的(一次读取一般是1024,然后系统再取你需要位置的数据给你),每读一次,才取几个字节,那真的很浪费..
    一次性读个1~2K,(1024字节)然后自己分行...当然代码判断上就累了点..最终极的办法当然就是想办法让文件数据少点咯...使用线程的函数,百度下就一堆了..用_beginthread()..
      

  3.   

    感谢emptyness,分析的很透彻,佩服