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++ - 关于C++中std::promise的错误

    java - 带有Ormlite和JavaFX的嵌入式Sqlite数据库:创建表时出错

    Delphi 2010 - Wininet 句柄用完

    c# - 堆已损坏。 C# dllimport,delphi PChar 返回值

    delphi - Inno Setup FileCopy失败

    ios - 仅具有屏障任务的并发队列

    java - 在新线程中 hibernate 延迟加载

    c++ - 互斥锁不触发条件断点

    iphone - 如何在 iphone 的 sqlite 中绑定(bind)当前日期

    c# - SQLite 连接在 C# 中不起作用