正在写一个提醒软件。现有一个问题我一直没有想出好的解决方法。特来此问问高手们。
关于提醒事件的触发问题。最直接的方法是在Timer的Timer事件中一直检测。如果发现有
发期的事件就进行提醒。但这样做效率极为不高。会很占用系统的资源。
另一个方法是:一次把今天可能要进行提醒的事情都取出来。存放到本地,这样就不用
频繁的进行数据库的查询了。但是还是要不断的进行循环检测。
不知道大家是怎么解决的。高分相送。
关于提醒事件的触发问题。最直接的方法是在Timer的Timer事件中一直检测。如果发现有
发期的事件就进行提醒。但这样做效率极为不高。会很占用系统的资源。
另一个方法是:一次把今天可能要进行提醒的事情都取出来。存放到本地,这样就不用
频繁的进行数据库的查询了。但是还是要不断的进行循环检测。
不知道大家是怎么解决的。高分相送。
解决方案 »
- 请问exescope的rc文件的文字如何转换?
- 请高手指教,如何循环赋值:edit[n].text:=str[m];
- 请教一个关于SQL数据库查询的问题!
- CSDN的论坛这几天搞什么了??????
- 新建数据表问题?
- **datetimepicker如何只取时间,着急!!!在线等待!!!
- 急,请问把一个控件上的内容拖到LISTVIEW1上时,在LISTVIEW1上的一个ITEM上释放,此时如何获得ITEM的caption???
- 不关闭窗口下如何释放全局变量和局部变量
- 又一个简单问题。关于遍历ADOQUERY返回的记录集合。
- 我的问题为什么没人回答?(救救我)
- 关于保留2位小数的问题
- 使用SMTP1作一个给已知邮件地址发送邮件的问题!!!请大家帮我(毕业设计)
如果时间精度要求不高可以把interval属性设得高点
中不停的与数据库进行查询吗?想不明白。
能具体 些吗?
提醒方式:一次性、每天、每周(分为七天,让用户进行多选)、每月、每年。
对于以上的多种提醒方式,在进行比较的时候是有些繁琐的。
另外问一下。这样的功能,大家是如果存储到数据库中的。to:ten_years_ago(昨天上班,今天下岗)
能不能具体一些,大体上的思路就行。
排序所有时间按时间间隔设定定时器
如果上一个激发事件为 2005-01-01 10:00:00
下一个激发事件为 2005-01-01 11:00:00
则定时器的interval 就变成 60 * 60 * 1000
这样定时器不会运行那么多次了
其实,一分钟一次的定时器也占不了什么资源
你讲的也有道理。
一旦有事件触发,例如Windwos的消息机制,由后台程序向你的主程序发一个相应的消息,这时主程序会自动按照你事先写好的处理模块去运行.这样做的效率是很高的,无论你Timer设成什么值,不会影响你的主程序运行. 注意点:1:每次启动主程序,先杀死后台进程(防止多个相同的后台进程存成),然后立该现加栽后台进程,向后台进程传递相应参数(例如:主程序的句柄,你的连接句柄等),同时记下后以进程的句柄,以便相互交换数据. 我在一个实时通讯串口通讯系统中,例如此方法,效率非常高,且非常稳定. 祝楼主成功.
这个观点不正确,qq以及其类似的程序,人家是采用了:线程或进程技术,如果单纯的用一个TIMER想解决问题,这种系统是验受不住考验的.
这个观点不正确,qq以及其类似的程序,人家是采用了:线程或进程技术,如果单纯的用一个TIMER想解决问题,这种系统是验受不住考验的.TIMER是利用Windows自身的线程来实现, 肯定比你自己另外写线程更为简捷而可靠。
在大绝大多数的应用中,除非需要精度较高的定时器,是没有必须自己来写线程来实现TIMER功能的。TIMER有TIMER最适合解决的问题,线程有线程最适合解决的问题,不能一概而论,不能认为所有问题都是应该用线程来解决。这种观点是错误的。