将异步事件转换为同步事件

时间:2014-02-18 19:51:59

标签: multithreading delphi asynchronous activex sync

我在Delphi项目中有一个ActiveX控件。它具有计算特定值的功能。问题是计算结果是在异步触发的事件中提供的。

我更愿意调用此函数并等到它完成,然后继续执行程序(同步调用)。

我尝试使用一个线程,但由于未知原因没有触发事件。此外,我不确定以这种方式使用控件是否是线程安全的。

是否有任何关于如何将AX异步方法安全地转换为同步方法的一般指导原则?

1 个答案:

答案 0 :(得分:4)

创建最初未签名的TEvent。在异步事件处理程序中发出信号。等待它在启动异步操作后发出信号。根据COM对象的线程模型,您可能需要定期抽取消息队列以触发异步事件。