gpt4 book ai didi

delphi - 除了 processmessage 之外,我还可以使用其他什么来保持程序响应吗?

转载 作者:行者123 更新时间:2023-12-03 15:05:45 25 4
gpt4 key购买 nike

我有一个可以运行很长时间扫描数据库的应用程序。
在此过程中,我使用 processmessage 保持程序响应。
当我的进度条更新并增加时,会触发此进程消息。
在大多数情况下,这工作得很好,但是当数据库变得更大时,进度条需要更长的时间才能上升 1%,直到那时程序才会变得无响应。

除了处理消息之外,还有其他方法可以让我的程序保持事件状态吗?

最佳答案

多线程就是答案。标准的 Delphi 应用程序基本上是一个单线程应用程序,一次只能做一件事。因此,GUI 锁定,如果它正在做其他事情,它就无法保持响应。

如果你想拥有一个响应式图形用户界面并同时完成繁重的工作,你需要在一个或多个单独的线程中完成繁重的工作。这样你的主线程可以确保你有一个响应迅速的程序,而工作线程则完成繁重的工作。这对于繁重的数据库工作非常有用,但也适用于下载文件或远程服务器的响应可能需要很长时间的情况。

但是这个答案可能会给你更多的问题而不是答案,因为解释如何使用多线程对于这个问题的解释太大了。

还有一件事:仔细检查你的数据库代码。您如何从数据库中检索记录,数据库上是否有良好的索引等等。在您必须开始考虑多线程之前,您可以通过优化此代码来获得疯狂的速度提升。

我找到了以下资源:http://thaddy.co.uk/threads/您可以在以下位置下载该图片:http://cc.embarcadero.com/item/14809非常有用的线程教程。

关于delphi - 除了 processmessage 之外,我还可以使用其他什么来保持程序响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com