我在Delphi项目中有一个ActiveX控件。它具有计算特定值的功能。问题是计算结果是在异步触发的事件中提供的。
我更愿意调用此函数并等到它完成,然后继续执行程序(同步调用)。
我尝试使用一个线程,但由于未知原因没有触发事件。此外,我不确定以这种方式使用控件是否是线程安全的。
是否有任何关于如何将AX异步方法安全地转换为同步方法的一般指导原则?
答案 0 :(得分:4)
创建最初未签名的TEvent
。在异步事件处理程序中发出信号。等待它在启动异步操作后发出信号。根据COM对象的线程模型,您可能需要定期抽取消息队列以触发异步事件。