有没有有关Delphi跨线程通信的文档?我如何向没有窗口的线程发送消息?
关于使用库的成本:您需要自己考虑是否足够快速。在我看来,它确实以良好的方式抽象了线程之间的通信,但是每个抽象显然都会牺牲性能。
如果您最终决定不使用该库 - 请自己编写代码。我曾经为 Delphi 4 做过同样的事情,并且我已经使用那段代码将近10年了。根据我在这段时间里发现的数量和经历的角落案例的数量,我一定会建议任何新手不要为此编写自己的库代码。如果您真的非常想要,那么请认真遵守这篇文章中的规则。
如果您有线程对象的引用,可以直接调用它,并相应地存储信息或更新。显然,您必须小心以线程安全的方式执行操作。
或者,您可以使用一个中央控制对象,在线程不忙时进行通信。我有一个应用程序,其中线程具有特定的目的,并分配了线程ID。任何线程都可以向另一个线程ID发布带有消息ID和参数字符串的消息,然后继续工作。其他线程在空闲时会接收到该消息并相应地处理。