multithreading - 新的Delphi TActivityIndi​​cator运行在主线程有什么用?

标签 multithreading delphi delphi-10-seattle activity-indicator

我希望在打开大型查询时使用新的 Seattle TActivityIndi​​cator,但这会阻塞主 vcl 线程并因此停止 TActivityIndi​​cator。

当然 TActivityIndi​​cator 指示事件并且应该在不同的线程中工作。

不必在任何地方都放入 Application.Processmessages 是否还有另一种方法?

最佳答案

新的 VCL UI 事件指示器是一个进度指示器,旨在反射(reflect) Windows 10 的外观。与任何其他 VCL 控件一样,它遵循通常的 VCL 线程规则。对控件的所有访问都必须来自 UI 线程。

因此,您需要从 UI 线程创建和显示指标。您需要确保 UI 线程从未被阻塞。这意味着任何长时间运行的任务都必须转移到工作线程,以免它们阻塞 UI 线程。

加上 ça 变化,加上 c'est la même chose。

关于multithreading - 新的Delphi TActivityIndi​​cator运行在主线程有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33599790/

相关文章:

c# - 从多个线程读取SQL数据

multithreading - 为什么自旋锁在单个 CPU 上没有意义?

c# - 舍入浮点值

delphi - HD Firemonkey 应用程序中 Screen.MonitorCount 的等效项是什么?

sql-server - 无法将空字符串传递到非空数据库字段

linux - 在 Linux(通常是 POSIX)中,如何确定线程是否在系统调用中?

Java Executors.newFixedThreadPool() - Web 应用程序中理想的线程数?

delphi - 鼠标缩放: marquee color

delphi - 将 TestInsight 安装到 Delphi 10 Seattle

delphi - 西雅图的 UDP 与 Delphi 7