【发布时间】:2011-02-14 15:12:17
【问题描述】:
我正在编写应用程序,它连接到数据库并重复(1 分钟间隔)从数据库中读取数据。它类似于 RSS 提要阅读器,但具有本地数据库。如果数据读取失败,我尝试重新建立连接。我在表单上放置了 TADOConnection 和 TADOQuery 来设计它(因此没有动态创建)。我的目标是从用户的角度保持应用程序“活跃”,因此我将连接和阅读部分放在一个线程中。问题是,如何做到最好?
我的设计是这样的:
- 应用程序启动,TADOConnection 和 TADOQuery 与表单一起创建
- 在单独的线程中打开连接 (TADOConnection)
- 如果连接建立,挂起连接线程,在窗体上启动定时器,它会周期性地恢复另一个线程进行数据读取
- 如果读取线程成功,则没有任何反应,表单定时器继续运行,如果失败,线程停止定时器并恢复连接线程
动态创建 TADOConnection 或 TADOQuery 更好还是无关紧要?使用例如更好吗?线程中的关键部分或其他东西(我同时只有一个组件访问权限并且只有一个线程)?
感谢您的建议
【问题讨论】:
-
只是将其链接到另一个相关问题:Threaded Delphi ADO Query
标签: multithreading delphi tadoquery