我有一個實現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