필자는 com 서버를 구현 한 Delphi7 프로그램을 가지고 있습니다. 최근 몇 가지 새로운 데이터베이스 쿼리로 인해 프로그램 초기화가 완료되는 시간이 다소 증가했습니다. 프로그램 initlisation이 의미하는 것은 프로그램이 들어오는 com 호출을 의미있는 방식으로 처리 할 수있는 시간입니다. 내 질문은 프로그램이 제대로 초기화되지 않은 경우 들어오는 COM 호출을 처리 할 수있는 방법입니다. 호출에 포함 된 정보를 삭제하는 것은 옵션이 아니므로 호출은 프로그램이 초기화 될 때까지 기다려야합니다. 부울 초기화 변수를 사용하는 간단한 while 루프가 충분합니까? com 호출이 주 VCL 스레드에서 실행된다는 것을 읽었 기 때문에 물어 봅니다. 잠시 동안 루프가 프로그램을 중단시킬 수 있다고 제안합니다 (초기화는 VCL 스레드에서도 발생합니다).Delphi7 프로그램 초기화가 완료 될 때까지 Com 객체를 대기 상태로 만드는 방법은 무엇입니까?
뮤텍스는 동일한 스레드 내에서 실행되는 코드를 기다리는 데 사용할 수 없습니까?
다른 방법으로 말하면, com은 완료 될 때까지 (com 서버의) VCL 스레드의 인터럽트 실행을 호출합니까? 아니면 동일한 스레드 내에서 코드의 동시 실행이 어떻게 작동합니까? 시간을내어 주셔서 감사합니다.
COM은 기다리지 않아도됩니다. 왜 돕고 싶니? 도와주지 마. –
그러나 COM 호출이 vcl 스레드 내에서 실행되고 초기화가 VCL 스레드 내에서 발생하면 while 루프가 해당 스레드를 차단하고 initilisation이 끝나지 않게합니다. Windows가 com 서버를 포함하는 delphi 프로그램을 시작하면 com 함수가 호출되기 전에 섹션 (초기화 섹션, 양식 작성)이 실행됩니까? 그때 나는 초기화 기능이 완료되기 전에 COM 기능이 실행되지 않도록 할 수 있습니다. – MCS