我是Delphi开发的初学者。我想制作包括Sqlite数据库和浏览器的桌面应用程序。该应用程序主要基于CRUD操作,但当用户将数据更新到数据库中时,更改将显示在应用程序的另一个面板上的浏览器上。它还生成可打印的pdf。pdf文件由C#代码[NReco Library]生成。在这种情况下,我必须在我的应用程序中使用"多线程"来使我的ui响应。
SQlite3的响应时间非常短。一个简单的SELECT在实践中不到几微秒,因为它是一个嵌入式数据库,并且不涉及网络层。
无需使用SQLite3实现后台线程。
对于要求苛刻的内容,例如读取大量数据,您可以:
- 使用正确的分页(例如,每次读取10K行(
- 不时呼叫
Application.ProcessMessage
- 在循环中添加超时
你应该像设计客户端应用程序一样设计你的应用程序。过多的数据正在扼杀UI和用户的数据。只获取正确显示所需的内容。
这可能没有必要,但在单独的线程上运行长时间运行的任务总是一个好主意。德尔福让这件事变得非常容易,所以不应该担心。
或者,您可以使用诸如定期调用Application.ProcessMessage((之类的技术来保持UI的响应性。