TMessageManager的'SendMessage'方法不会NOT调用'Subscribed'(或关联的回调)函数AFTER调用'SendMessage'的函数完成。
[对于这个问题的可用解决方案,我正在考虑以最小的时间间隔(1毫秒)使用TTimer,以便在调用方函数中启用计时器时,必须触发TTimer的OnTimer事件< [AFTER启用它的功能。我认为这是解决此问题的一种“缓慢”且丑陋的解决方法。
FMX或系统库中是否有任何应用程序范围的消息传递工具可以在调用者函数完成或返回之后调用回调函数? (在它们之间处理/调用的其他应用程序消息也不错)顺便说一下,这是用于FMX或多设备跨平台开发的。不特定于VCL或Windows环境。((我真正想要的是能够向自己的应用程序发送消息,类似于Windows API函数PostMessage的行为。由PostMessage发送的消息在返回PostMessage函数后从Windows过程回调函数中出现。)
TMessageManager.SendMessage()
是同步的。对于异步发送,如果要从工作线程发布消息,请查看TThread.Queue()
,如果要从主UI线程发布消息,请查看TThread.Queue()
。