Я написал что-то простое, как показано ниже:
//...
this.Middleware = new AxMELFARXMLib.AxMelfaRxM();
((System.ComponentModel.ISupportInitialize)(this.Middleware)).BeginInit();
this.Middleware.Name = "Middleware";
this.Middleware.OcxState = ((AxHost.State)(resources.GetObject("Middleware.OcxState")));
this.Middleware.MsgRecvEvent += new System.EventHandler(this.Message_receiv_event_handler);
this.Middleware.Visible = false;
((System.ComponentModel.ISupportInitialize)(this.Middleware)).EndInit();
this.Middleware.CreateControl();
while(Middleware.Created == false)
{
}
Перед циклом while, если он подсматривается отладчиком VS, свойство "Created" для "Middleware" имеет значение true, как показано ниже
Однако при выполнении программа всегда перехватывается циклом while, который проверяет, имеет ли свойство «Создано» значение false.Фрагмент кода находится в той же функции, фактически, как конструктор, и выполняется одним потоком.Это просто не имеет никакого смысла для меня.
Наблюдение: если точка останова вставляется перед циклом while, и один ждет достаточно долго, прежде чем продолжить, свойство «Создано» становится истинным, и выполнение просто продолжается без прерывания в цикле while.