首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi7如何让Com对象等待程序初始化完成?

Delphi7如何让Com对象等待程序初始化完成?
EN

Stack Overflow用户
提问于 2012-11-17 21:38:19
回答 2查看 200关注 0票数 2

我有一个实现com服务器的Delphi7程序。最近,由于一些新的数据库查询,程序初始化完成的时间有所增加。我所说的程序初始化是指程序能够以有意义的方式处理传入的com调用所需的时间。我的问题是,当程序还没有正确初始化时,我如何处理传入的com调用。丢弃调用中包含的信息不是一个选项,调用需要等待程序初始化。使用布尔初始化变量的一个简单的while循环就足够了吗?我之所以这样问,是因为我读到com调用是在主VCL线程中执行的,这意味着while循环会导致程序挂起(初始化也发生在VCL线程中)。

Mutexes不能用来等待代码在同一线程中执行,对吧?

换句话说,com是否调用中断(com服务器的) VCL线程的执行,直到它完成,或者同一线程中代码的并发执行是如何工作的?谢谢你抽出时间来。

EN

回答 2

Stack Overflow用户

发布于 2012-11-18 01:14:23

将数据库逻辑移出主线程,使其不再被阻塞。

票数 1
EN

Stack Overflow用户

发布于 2013-07-12 20:43:47

COM服务器(EXE)在将控制流返回到COM客户端之前等待Applcation.Run,因此所有窗体和数据模块都应初始化。

但是,当窗体创建另一个OLE对象(即在FormCreate()事件处理程序中打开Word doc )时,这可能会中断等待并立即将控制返回给COM客户端。

尝试检查在Applcation.Run之前创建的表单的所有初始化代码,以定位问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13431091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档