📄 subject_23546.htm
字号:
<p>
序号:23546 发表者:去吃饭 发表日期:2002-12-04 22:32:09
<br>主题:CListBox在条目太多时,AddString的速度越来慢?如何解决?
<br>内容:关键是我需要一个要显示几万到几十万条项目的ListBox.<BR>大家帮忙啊!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Bruise Lee 回复日期:2002-12-04 23:03:46
<br>内容:用控件APEX True DBList(可以和数祖绑定)<BR>如果不喜欢控件,可以用源码http://www.codeproject.com/miscctrl/reportctrl.asp
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:去吃饭 回复日期:2002-12-06 13:56:44
<br>内容:bruise, CReportCtrl的插入操作还是太慢(甚至还不如CListBox)。我的需求是这样的:每10ms收到一个UDP数据包,然后插入列表显示,刚开始时CReportCtrl能够跟上网络速度,但后来越来越慢,以致不能忍受。 后来,我把它的InertItemImpl改动了一下,去掉了一个没有用的for循环,稍有改观,但还是不行。<BR>请赐教!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-12-06 14:53:22
<br>内容:你的问题有两个哈:<BR>1)就不应该出现什么实时更新到十几万条的list……你看看MS的网络监视器是怎么做的?抓包的时候只有计数,停止了之后再一次显示出来,我觉得你可以参考这种模式哈,你想想看10ms,看都来不及看你还把插入过程显示出来……给谁看啊?<BR><BR>2)你的插入操作速度慢可能是因为频繁刷新导致的哈,你在你的timer事件里试试这么做会不会有改观:在插入操作前:m_lstMyListBox.SetRedraw(FALSE);<BR>然后在插入操作后在if (m_nSomeKindOfCounter % 100/*or some other values*/ == 0) m_lstMyListBox.SetRedraw(TRUE);这样可能能好一点。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Bruise Lee 回复日期:2002-12-06 14:58:41
<br>内容:use concept: virtual list control<BR>sample:<BR>http://www.codeguru.com/listview/VirtualListControl.html<BR><BR>the way where I found the answer is from:<BR>http://www.codeguru.com/listview/index.shtml<BR><BR>on more useful link:<BR>http://www.codeguru.com/listview/TableView.html<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:去吃饭 回复日期:2002-12-07 16:06:44
<br>内容:SetRedraw(FALSE)也能稍微改观一下性能,但总体还是不行(刚开始每秒处理几千项,到后来每秒处理几十项),速度瓶颈还在插入操作上,当我停止发包后,要过5分钟才能将所有数据分析完,不方便。<BR>我看过了Virtual list control的说明,虽然还没有实验,但觉得应该能解决问题。<BR>多谢两位,多谢多谢!<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -