0

在我当前的项目中,我有一个这样的结构:

Main Thread (GUI):
->Parser Thread
->Healer Thread
->Scripts Thread

问题是 Healer & Scripts Threads 必须使用其适当的计时器创建子线程,它看起来像这样:

->Parser Thread
->Healer Thread:
-->Healer 1
-->Healer 2
--> (...) 
->Scripts Thread:
-->Script 1
--> (...)

为此,我考虑过编写一个动态计时器,该计时器将在添加新的修复/脚本时在运行时创建。

现在的问题/问题是:也许我有 20 个计时器因此同时运行,这不会对我的程序性能(CPU 消耗等)造成问题吗?这是实现我正在寻找的最佳方式吗?

提前致谢

4

1 回答 1

1

在一个应用程序中一次激活多达 20 个计时器是没有问题的。现代硬件完全有能力处理这个问题。

还请记住,计时器消息是低优先级消息,因此仅在消息队列为空时合成。因此,您需要及时维护线程的消息队列,以便及时传递消息。

对您来说更大的问题是您无法TTimer在 GUI/VCL 线程之外创建实例。这是因为定时器组件调用AllocateHWnd不是线程安全的,只能从 GUI/VCL 线程调用。因此,您需要直接与原始 Win32 计时器 API 交互,而不是使用 VCLTTimer包装器。

于 2013-05-20T09:43:47.777 回答