multithreading - 在基于 SQLite 的 Delphi 应用程序中是否需要使用线程?

标签 multithreading sqlite delphi

我是 Delphi 开发的初学者。我想制作包含 Sqlite 数据库和浏览器的桌面应用程序。该应用程序主要基于 CRUD 操作,但是当用户将数据更新到数据库时,更改将显示在应用程序另一个面板的浏览器上。它还生成可打印的 pdf。 pdf 由 C# 代码[NReco Library] 生成。在这种情况下,我是否必须在我的应用程序中使用多线程以使我的 ui 响应。

最佳答案

SQlite3 的响应时间非常短。一个简单的 SELECT 实际上不到几微秒,因为它是一个嵌入式数据库,不涉及网络层。
无需使用 SQLite3 实现后台线程。
对于要求苛刻的内容,例如阅读大量数据,您可以:

  • 使用适当的分页(例如每次读取 10K 行);
  • 调用 Application.ProcessMessage时不时地;
  • 在循环中添加超时。

  • 您应该像设计客户端应用程序一样设计您的应用程序。对于 UI 和用户来说,太多的数据正在扼杀数据。只获得正确显示所需的内容。

    关于multithreading - 在基于 SQLite 的 Delphi 应用程序中是否需要使用线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64992893/

    相关文章:

    c# - 当一个任务引发另一个任务与第一个任务同步时,Task.WaitAll挂起

    Android SQLite 泄漏问题

    php - 删除 SQLite 中另一个表中不存在的所有行

    windows - 禁止 MS-Office 应用程序以编程方式发送遥测数据

    c# - 继续任务上的 Task.WaitAll() 只会延迟原始任务的执行?

    multithreading - 线程安全删除链表节点,使用细粒度方法

    multithreading - 如何通过工作线程更改进度

    android - 如何使用选择参数从 android 中的内容提供者查询特定行

    MySQL 用户定义函数发送 windows 消息

    delphi - Delphi中的目录路径操作?