delphi – 除了processmessage之外我还可以用来保持程序响应的其
发布时间:2020-12-15 04:23:34 所属栏目:大数据 来源:网络整理
导读:我有一个可以运行很长时间扫描数据库的应用程序. 在此过程中,我通过使用processmessage使我的程序保持响应. 当我的进度条更新并且被包含时,将触发此流程消息. 大多数情况下都可以正常工作,但是当数据库变大时,进度条上升1%需要更长的时间,程序在此之前就会
我有一个可以运行很长时间扫描数据库的应用程序.
在此过程中,我通过使用processmessage使我的程序保持响应. 当我的进度条更新并且被包含时,将触发此流程消息. 大多数情况下都可以正常工作,但是当数据库变大时,进度条上升1%需要更长的时间,程序在此之前就会无响应. 除了流程消息之外,还有另一种让我的程序保持活力的方法吗? 解决方法
多线程就是答案.标准的Delphi应用程序基本上是一个单线程应用程序,可以一次完成一件事.因此gui锁定,如果它正在做其他事情,它不能保持响应.
如果你想要一个响应的gui并同时进行繁重的提升,你需要在一个单独的线程或线程中进行繁重的工作.这样你的主线程可以确保你有一个响应程序,工作线程可以完成繁重的工作. 但是这个答案可能会给你更多的答案,因为解释如何使用多线程对这个问题的解释太大了. 另一件事是:对数据库代码进行长时间的严格审查.你是如何从数据库中检索记录的,数据库上是否有好的索引等等.在开始考虑多线程之前,你可以通过优化这些代码来提高疯狂的速度. 我找到了以下资源:http://thaddy.co.uk/threads/,你可以下载图片:http://cc.embarcadero.com/item/14809是非常有用的线程教程. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |