请问扫描数据库的实现 请问程序中使用死循环是否极容易浪费系统资源?现在我需要不停的扫描数据库,然后根据对某些数据做一些处理,请问如何实现比较好?现在我只是很简单的在一个按钮事件里加入了这样一个死循环,不断扫描数据库,扫描一次之后,看是否有满足条件的记录,若有,则处理。扫描完之后sleep(2000)后继续第二次扫描,用不中止。请问这样可行吗?程序运行之后窗体连最小化都不行了,是否只能用线程来实现这种操作?请高手指条明路,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在你的循环里面加上Application.ProgressMessage;//ProgressMessage应该是这样写的吧? 像 wjlsmail(计算机质子)说的,使用多线程是最好的,在自定义的线程类中Execute中执行Synchronize(你的扫描函数)就可以了。你可以做到完全控制,不用怕不能中断了。 用的什么数据库?如果是SQL的话,用触发器不是更好吗?或者你自己做一触发事件,当满足条件的时候触发你需要做的操作的事件用死循环绝对不是个好主意! Synchronize的方法不好,因为他是占用主线程的时间执行的,不管使用什么方法你的要求都是不被支持的,因为你这样轮训数据库会造成数据库的日志文件急速增长,及出现死锁的机率加大,同时还会占去服务器的有效工作资源,因此建议你修改方案。 delphi求助 关联查询 谁知道怎么开发QQ麻将桌的界面的控件,不知道怎么开发这样的控件。高手提示下 弱智问T,怎样去掉Memo1中的Memo1的文字? 紧急求助,第一次来Delphi,希望大家帮忙啦 请问opendialog控件在哪里啊。我D7的 请大虾看看这句话怎么会内存读取错误 动态创建控件的事件问题!!!! 请进!感谢 d6 for oracle8 setvariable 关于电子签名的问题! vcl 组件开发高级技术 如何检测某个已知存在文件当前是否处于被某个或某些应用程序打开的状态?
Application.ProgressMessage;//ProgressMessage应该是这样写的吧?
Synchronize(你的扫描函数)就可以了。你可以做到完全控制,不用怕不能中断了。
或者你自己做一触发事件,当满足条件的时候触发你需要做的操作的事件
用死循环绝对不是个好主意
!