我有一个实现com服务器的Delphi7程序。由于一些新的数据库查询,最近完成程序初始化的时间有所增加。我的意思是程序启动是程序能够以有意义的方式处理传入的COM调用所花费的时间。 我的问题是我如何处理传入的COM调用程序尚未正确初始化。放弃呼叫中包含的信息不是一种选择,呼叫需要等待程序初始化。 使用布尔初始化变量的简单while循环是否足够? 我问,因为我读过com调用在主VCL线程中执行,这会提示while循环会导致程序挂起(初始化也发生在VCL线程中)。Delphi7如何让Com对象等到程序初始化完成?
互斥不能被用于WAITFOR同一线程内执行的代码,是吗?
换一种方式,做一个COM调用(COM服务器)VCL线程执行interupt,直到它完成或怎么做的代码相同的线程的工作中这种并发执行? 感谢您抽出时间。
COM不介意等待。你为什么想帮忙?不要帮忙。 –
但是如果一个com调用在vcl线程内执行并且初始化发生在VCL线程中,那么不会有一个while循环阻塞该线程并导致initilisation不能完成? 当Windows启动一个包含com服务器的delphi程序时,在com函数被调用之前执行哪些部分(初始化部分,窗体创建)?如果我知道,那么我可以确保在初始化完成之前,com函数永远不会执行。 – MCS