请问程序中使用死循环是否极容易浪费系统资源?现在我需要不停的扫描数据库,然后根据对某些数据做一些处理,请问如何实现比较好?现在我只是很简单的在一个按钮事件里加入了这样一个死循环,不断扫描数据库,扫描一次之后,看是否有满足条件的记录,若有,则处理。扫描完之后sleep(2000)后继续第二次扫描,用不中止。请问这样可行吗?程序运行之后窗体连最小化都不行了,是否只能用线程来实现这种操作?请高手指条明路,谢谢。

解决方案 »

  1.   

    在你的循环里面加上
    Application.ProgressMessage;//ProgressMessage应该是这样写的吧?
      

  2.   

    像 wjlsmail(计算机质子)说的,使用多线程是最好的,在自定义的线程类中Execute中执行
    Synchronize(你的扫描函数)就可以了。你可以做到完全控制,不用怕不能中断了。
      

  3.   

    用的什么数据库?如果是SQL的话,用触发器不是更好吗?
    或者你自己做一触发事件,当满足条件的时候触发你需要做的操作的事件
    用死循环绝对不是个好主意
      

  4.   

    Synchronize的方法不好,因为他是占用主线程的时间执行的,不管使用什么方法你的要求都是不被支持的,因为你这样轮训数据库会造成数据库的日志文件急速增长,及出现死锁的机率加大,同时还会占去服务器的有效工作资源,因此建议你修改方案。