社区
界面
帖子详情
Virtual List 虚拟列表 速度慢 卡住 主线程 问题
HackerJLY
2011-12-09 04:19:03
Virtual List 虚拟列表 速度慢 卡住 主线程 问题
我处理的是 LVN_ODCACHEHINT 和 LVN_GETDISPINFO,LVN_ODCACHEHINT 里 负责从数据库里读取数据,读到 CArray 里面,LVN_GETDISPINFO 里负责显示数据到列表
目前问题是 LVN_ODCACHEHINT 里从数据库里读取数据太慢,会导致主线程很卡
请问有没有好办法解决,或者提供一个比 虚拟列表 好的列表
...全文
268
16
打赏
收藏
Virtual List 虚拟列表 速度慢 卡住 主线程 问题
Virtual List 虚拟列表 速度慢 卡住 主线程 问题 我处理的是 LVN_ODCACHEHINT 和 LVN_GETDISPINFO,LVN_ODCACHEHINT 里 负责从数据库里读取数据,读到 CArray 里面,LVN_GETDISPINFO 里负责显示数据到列表 目前问题是 LVN_ODCACHEHINT 里从数据库里读取数据太慢,会导致主线程很卡 请问有没有好办法解决,或者提供一个比 虚拟列表 好的列表
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
向立天
2012-02-10
打赏
举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了
疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面
界面版关于版主结帖工作的具体办法
HackerJLY
2011-12-30
打赏
举报
回复
[Quote=引用 13 楼 yu52000guang 的回复:]
你的问题跟虚列表效率没关系啊,关键在于数据处理,数据量很大,不可能全部读取。需要显示哪行的哪些字段,就读取这么一点数据就好了,可以先SetItemCount,然后用一个线程读取需要的数据,就这么点数据不会卡住。如果是快速拖动列表,可以加个sql语句执行的队列,比如20ms执行一次,多条的话只执行第一条,其余删掉。
没什么更好的办法。想效率更高在数据库前端加一层缓存。
[/Quote]
我现在起了一个专门读取数据的线程,用事件通知的方式通知线程去读取数据,有个线程是专门定时判断当前显示的Item范围的,如果范围变化,就通知数据读取线程去读取数据显示,即使Item范围不变化,其他地方更新的时候也可以用这个事件来通知更新。。。
缺点是:有延时,其他还好。。。
HackerJLY
2011-12-30
打赏
举报
回复
[Quote=引用 12 楼 xiaopan 的回复:]
引用 11 楼 hackerjly 的回复:
引用 10 楼 xiaopan 的回复:
引用 8 楼 hackerjly 的回复:
虚拟列表 + 辅助读取数据线程,方案如何设计呢?谁设计过啊?
确实有这个问题,关键是怎么样让item里面的数据能显式的更新,比如颜色变化,比如闪烁一下,
通知列表更新,就是:Invalidate吧??
[/Quote]
颜色变化、闪烁一下 我没那么用过,不过普通的数据更新很简单的,把虚拟列表的源数据改了,通知列表去取最新数据显示,好几个函数都可以做到 SetItemCount、SetItemCountEx、RedrawItems、RedrawWindow、UpdateWindow、SendMessage WM_PAINT 。。。
xiaopan
2011-12-28
打赏
举报
回复
[Quote=引用 8 楼 hackerjly 的回复:]
虚拟列表 + 辅助读取数据线程,方案如何设计呢?谁设计过啊?
[/Quote]
我现在做的是网络数据,通过socket传送,就是这个实时更新问题没有解决。
因为一条数据过来后,要在item里面显示,然后在该位置闪烁一下或者是颜色变化一下,提示客户,
类似股票那种功能,不知道兄弟有没好的办法??
Icer
2011-12-28
打赏
举报
回复
你的问题跟虚列表效率没关系啊,关键在于数据处理,数据量很大,不可能全部读取。需要显示哪行的哪些字段,就读取这么一点数据就好了,可以先SetItemCount,然后用一个线程读取需要的数据,就这么点数据不会卡住。如果是快速拖动列表,可以加个sql语句执行的队列,比如20ms执行一次,多条的话只执行第一条,其余删掉。
没什么更好的办法。想效率更高在数据库前端加一层缓存。
xiaopan
2011-12-28
打赏
举报
回复
[Quote=引用 11 楼 hackerjly 的回复:]
引用 10 楼 xiaopan 的回复:
引用 8 楼 hackerjly 的回复:
虚拟列表 + 辅助读取数据线程,方案如何设计呢?谁设计过啊?
我现在做的是网络数据,通过socket传送,就是这个实时更新问题没有解决。
因为一条数据过来后,要在item里面显示,然后在该位置闪烁一下或者是颜色变化一下,提示客户,
类似股票那种功能,不知道兄弟有没好的办法??
你这个有……
[/Quote]
确实有这个问题,关键是怎么样让item里面的数据能显式的更新,比如颜色变化,比如闪烁一下,
通知列表更新,就是:Invalidate吧??
HackerJLY
2011-12-28
打赏
举报
回复
[Quote=引用 10 楼 xiaopan 的回复:]
引用 8 楼 hackerjly 的回复:
虚拟列表 + 辅助读取数据线程,方案如何设计呢?谁设计过啊?
我现在做的是网络数据,通过socket传送,就是这个实时更新问题没有解决。
因为一条数据过来后,要在item里面显示,然后在该位置闪烁一下或者是颜色变化一下,提示客户,
类似股票那种功能,不知道兄弟有没好的办法??
[/Quote]
你这个有什么问题吗?
用 虚拟列表 的话,只要Socket来了数据,更新一下内存里的结构体数组,然后通知列表更新就可以了吧。。。
HackerJLY
2011-12-16
打赏
举报
回复
虚拟列表 + 辅助读取数据线程,方案如何设计呢?谁设计过啊?
jixiang1983
2011-12-12
打赏
举报
回复
这不是虚拟列表显示数据的问题,而是你的程序从数据库读数据慢的问题,使用多线程必然的了,创建一个线程专门处理读数据问题
HackerJLY
2011-12-10
打赏
举报
回复
数据量很大,至少 几十万 条数据,只能把要显示的那几条数据读到内存,不能全部读到内存
wyx100
2011-12-10
打赏
举报
回复
开线程读取数据库,等数据都读到内存,整理好了,再通知主线程用虚列表加载显示
HackerJLY
2011-12-10
打赏
举报
回复
谁有 弄 虚拟列表 出现此问题的 实战经验啊?
oyljerry
2011-12-09
打赏
举报
回复
开线程读取数据库,等数据都读到内存,整理好了,再通知主线程用虚列表加载显示
ndy_w
2011-12-09
打赏
举报
回复
内存里缓存是有必要的。控件随时可能重绘,每次都从数据库取就过分了。
如果信息太多只能缓存一部分,那么消息线程检查缓存没有,可以先给工作线程布置任务,然后回答一个空的结果。工作线程完成任务后,更新缓存,再刷新该item。
kyotrue
2011-12-09
打赏
举报
回复
消息是主线程处理的,你在里面做I/O操作当然会卡住了。
可以开个工作线程读数据库,读完后再发消息通知主线程刷界面。流程大致就这样,一个后台线程缓冲数据,不过同步处理起来就不是那么简单了。
Windows
虚拟
摄像头自定义开发
虚拟
摄像头源代码下载及CMake VS工程及常见
问题
2.修改及自定义相应的GUID和Camera Name 3.编译及提取
Virtual
Cam Module代码 4.怎么建立
虚拟
摄像头安装文件 5.怎么通过代码将外部视频帧推送给
虚拟
摄像头 6.
虚拟
...
数据过多(页面交互不流畅)-web worker+ ahooks解决
为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个
线程
,但是子
线程
完全受
主
线程
控制...workers和
主
线程
间的数据传递通过这样的消息机制进行——双方都使用方法发送各自的消息,使用。
面对大数据量渲染,前端工程师如何保证页面流畅性?
然后,文章具体剖析了前端优化大数据量渲染的技术手段,例如合理分页、
虚拟
列表
、防抖处理、懒加载、缓存复用等。 文章给出了一些详细的优化方案,如动态渲染可视区域、分页按需加载数据、启用路由缓存、图片懒加载、...
AOS
虚拟
内存布局、进程
线程
三、processes
virtual
device进程
虚拟
设备v节点结构 总结 前言 当玩到“
虚拟
内存”时,“簇”的概念有冲突,前面2章又需修改,这没办法。 这章介绍AOS中最为复杂的“
虚拟
设备”进程v节点。先将
主
框架、流程...
虚拟
化KVM技术详解
KVM 介绍(1):简介及安装http://www.cnblogs.com/sammyliu/p/4543110.html学习 KVM 的系列文章: (1)介绍和安装(2)CPU 和 内存
虚拟
化(3)I/O QEMU 全
虚拟
化和准
虚拟
化(Para-virtulizaiton)(4)I/O PCI/...
界面
15,978
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章