- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开发了一个应用程序,它连接到 SQL Server 数据库并每 1 秒从表中读取一些数据。
为此,我使用 TTimer
,但数据库响应的延迟会影响我的应用程序性能。
我对Delphi中的TThread
有所了解,我现在想知道的是使用TTimer
和TThread
之间的区别?在这种情况下,使用 TThread
而不是 TTimer
对我的应用程序性能有用吗?
最佳答案
TTimer 是一个基于消息的计时器。它将 WM_TIMER 消息发送到创建它的线程的消息队列。您的数据库操作正在阻止该线程及时处理新消息。假设您的 TTimer 位于主 UI 线程中,这就是您的应用程序性能受到影响的原因。将数据库操作移至工作线程可防止主线程的消息循环被阻塞。
关于multithreading - 使用 TTimer 和使用 TThread 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32580862/
我必须使用遗留代码。该代码在主线程中创建了一个TTimer。 在OnTimer事件中,计时器会定期检查工作线程中某些数据的状态。 伪代码: procedure MainForm.OnTimer(Sen
我遇到了一个奇怪的问题。我的主窗体上有一个 TTimer,应该触发 500 毫秒。创建表单后。 当我从 IDE 运行它时,它工作正常,但是当我在其他 W7 PC 上运行它时,会创建主窗体,但计时器不会
当我将 TTimer 间隔设置为 1 时,它实际上是每 1 毫秒执行一次代码,还是每 20 毫秒或类似的东西? 我问这个问题是因为我知道 Windows API Sleep() 函数不准确,所以我想知
谁在设计时绘制 TTimer? 使用 Delphi IDE 的表单设计器时,当您将 TTimer 放在表单上时,该组件在设计时可见(但当然,在运行时不可见)。 TTimer 类是在 ExtCtrls
我试图在 Delphi 中实现类似于 Javascript 的 setTimeout() 过程的行为:在延迟几秒钟后运行。为此,我在运行时创建了一个 TTimer,运行它,然后释放它。 这是我的代码:
如您所知,我在使用 Delphi 2010 开发的应用程序中的 TTimer VCL 组件遇到了一些问题。 每当我打电话时: Self.Timer1.Enabled := False; Self.Ti
我有一个带有 TTimer (timAnimateDataChange) 的 TFrame (fraDisplay)。定时器用于控制一个小动画。在包含框架的表单中,我想要一个执行类似以下操作的方法:
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Delphi Timer: Time before next event 在 Windows 7 Pro(64 位)
我想检测文件日期何时更改并更新用作 Tdatasource 的 DevX TdxMemData,然后在使用它的 TDBGrid 中看到该数据源。 我发现一些使用 ReadDirectoryChange
我的应用程序中有一个 TTimer,每 2 秒触发一次并调用我的事件处理程序 HandleTimerEvent()。 HandleTimerEvent() 函数会修改共享资源,并且在返回之前可能需要
谁能帮助我如何在 Delphi 中使用 TTimer 组件显示一个简单的计时器?我有一个标签,其中将显示从 5-0 开始的倒计时。请帮忙。只是一个简单的。谢谢 最佳答案 你没有说 5 和 0 之间的时
我有一个简单的 TTimer 问题,它启动并在主应用线程中执行其 OnTimer 事件,代码如下所示: procedure TForm1.DoSomeStuff(); begin OmniL
我有TTimer启用并且应该永远不间断地运行,直到用户停止它。然而,事实并非如此。在 OnTimer 事件中,它以毫秒为单位一遍又一遍地处理窗口消息。 例如,这是我的代码片段。 procedure T
我两天前开始学习Delphi,但我陷入了困境。我崩溃了,因为一切都不如我所愿,所以我决定在这里写下来。我想创建一个类,该类有一个带有自己的 TTimer 对象的字段,并且它将在某个时间间隔执行某些操作
当我从 TTimer 访问全局变量或 VCL 时,是否需要使用 Synchronize?我使用来自 TThread 的相同变量和对象,我已经在其中使用了同步。 最佳答案 TTimer的OnTimer事
我们必须使用 CoFreeUnusedLibrariesEx 来修复使用 MSXML 库后堆未清除的错误引用这个链接: http://blogs.msdn.com/b/marcelolr/archiv
我现在想做的是使用 TMemo 组件和 TTimer 创建滚动信用文本 procedure TAboutBox.Timer1Timer(Sender: TObject); begin Memo1
我开发了一个应用程序,它连接到 SQL Server 数据库并每 1 秒从表中读取一些数据。 为此,我使用 TTimer,但数据库响应的延迟会影响我的应用程序性能。 我对Delphi中的TThread
正如问题主题所说。我在 Delphi 中有一个控制台应用程序,其中包含一个 TTimer 变量。我想做的是将事件处理程序分配给 TTimer.OnTimer 事件。我对 Delphi 完全陌生,我曾经
我在 Windows 10 上使用 Delphi XE7。 我已经使用下面的代码很长时间了,只是阅读了SetTimer()上的文档。简单地说,我是从非 UI 线程设置计时器,但 Microsoft 的
我是一名优秀的程序员,十分优秀!