比如在界面上有N个房间的显示在程序中我要用一个timer来每过30秒刷新一次。在timer的事件中我要做如下的工作。1 从数据库中取出一个记录集 ado ,这个记录集是这N个房间的信息。
2 对房间进行循环
for i := 0 to roomcount - 1 do begin
end3 在循环中我要对每个房间进行一些信息的更新
比如
room[i].info1 := getinfo1() //getinfo1这个函数可能有好多的比较复杂的语句。问题是: 如果只有10-20个房间还好说。界面刷新还比较平滑。
但是如果有40个以上的房间,那界面的刷新速度就会变的很慢。
因为执行 40次 room[i].info1 := getinfo1()
非常的耗费时间。请问这种刷新的问题,平时大家在做项目的时候是如何实现的?
或者说有什么更好的方法。
这个问题我已经困扰了我好久了,
谢谢~
2 对房间进行循环
for i := 0 to roomcount - 1 do begin
end3 在循环中我要对每个房间进行一些信息的更新
比如
room[i].info1 := getinfo1() //getinfo1这个函数可能有好多的比较复杂的语句。问题是: 如果只有10-20个房间还好说。界面刷新还比较平滑。
但是如果有40个以上的房间,那界面的刷新速度就会变的很慢。
因为执行 40次 room[i].info1 := getinfo1()
非常的耗费时间。请问这种刷新的问题,平时大家在做项目的时候是如何实现的?
或者说有什么更好的方法。
这个问题我已经困扰了我好久了,
谢谢~
解决方案 »
- 请教一个最简单的多线程代码
- 套打发票,如何按格分割数字和如何按格分割数字大写?
- 我有一个设想,不知能否行得通?请高手指导!!!!!!
- 怎么查看Tobject.create编译后的汇编代码?
- access数据库图片存取问题(初级)
- 在SQL中,是不是计算字段的不能作为WHERE子句中的条件参数?
- 关于程序用dxgettext实现本地化的问题(多语言)。
- 请问怎么学好delphi
- 请问nmsmtp中怎么样实现这种情况?
- 请教目录改名的问题
- delphi [Error] : Declaration expected but 'IF' found疑难问题,望大师指点
- 新手请教大侠们:使用SPCOMM控件中发送数据的问题。。。^_^
2\每个房间设置"是否改变信息"的标志变量,在线程中把刚从数据库中获取的此房间的信息与上次保存的信息比较,如果改变则刷新响应的房间显示(最好向显示窗口用SendMessage发消息).
为什么要这么复杂呢。用线程+一定的类或者函数的封装,不是简单的多么。
思考一下:对每个房间进行更新+循环n次,那么你就是执行了n次更新;为什么不不考虑一次更新n个需要更新的房间呢。
这就是设计思路。