opengl多线程创建显示列表

wanderfox 2007-08-14 04:36:16
我在一个项目中需要创建很多的显示列表,其中有一些显示列表是需要事先读文件,然后再创建的,因此创建显示列表的时间会有点长。
请问是否可以用几个线程同时创建列表?
如果不行,请问有什么替代的方法么?谢谢
...全文
363 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanderfox 2007-08-16
感谢emptyness,分析的很透彻,佩服
回复
emptyness 2007-08-15
C\C++读文件已经是很快的咯..
C#创建的类会不会很大而浪费时间就不知道了..应该也是很快的.ms不会把一些常用的类设计的复杂而降低速度..
30万/2 条直线 再 * 30个文件.... 是很多了...
那就没办法了..
开线程不会加速 就一个CPU,你让它全力工作一个线程已经是最快的.平常开线程一般都是为了不影响主界面工作的...但线程里的工作完成还是要等那么长的时间...

要么在开个线程完成列表,然后主界面弄点花哨的东西转移下注意力...等待线程里列表创建完成.
要么就想办法简化你的文件数据了...
另外读文件,一次性读的越大越好...如果你30万行,你分30万次一行一行 几个字节几个字节读完,
那谁都会崩溃的...硬盘读取本来就是一块一块读出来的(一次读取一般是1024,然后系统再取你需要位置的数据给你),每读一次,才取几个字节,那真的很浪费..
一次性读个1~2K,(1024字节)然后自己分行...当然代码判断上就累了点..

最终极的办法当然就是想办法让文件数据少点咯...

使用线程的函数,百度下就一堆了..用_beginthread()..
回复
wanderfox 2007-08-14
感谢楼上的,文件不是大,而是很多,大概有30个左右的文件,每个文件有大概30万行的数据要读。其实就是相当于30万个点,点与点之间依次连接。这样的一个文件分配一个列表,目前是放在一个线程里面搞定,感觉速度有点受不了。是不是在c下面读文件速度要比c#速度快很多?谢谢
回复
emptyness 2007-08-14
多用几个线程创建显示列表???
晕.那不更慢了..还多了线程调度的时间....

如果说是影响主界面,那开一个线程读完创建所有的就可以了..
我没试过在线程中创建行不行...
LZ清楚线程操作么? 如果清楚,把主线程定义的变量传过去自己试下就好了..


其中有一些显示列表是需要事先读文件,然后再创建的,因此创建显示列表的时间会有点长。

效率应该是因为读文件降下来的撒,所以想办法优化你的文件数据...
眼睛很好欺骗...真的有那么多数据量吗?多少MB的??

回复
发动态
发帖子
图形处理/算法
创建于2007-09-28

1.9w+

社区成员

VC/MFC 图形处理/算法
申请成为版主
社区公告
暂无公告