ActiveX控件事件多层次Fire后的问题
我现在写了2个OCX,假如COcx1和COcx12和一个应用app,COcx2调用COcx1,app调用COcx2。在COcx2中提供一个方法,COcx2::Start(),这其中其实就是调用COcx1中的COcx1::Start()。COcx1中COcx1::Start()的实现是开启一个线程,让线程执行操作,最后实际结果通过COcx1::FireStartResult事件发送给COcx2,而在COcx2中的COcx2::OnStartResult()中继续COcx2::FireStartResult给app。
现在因为Start()执行的线程是个耗时操作,所以在app中调用了COcx1::Start()后会弹出一个对话框dlg1::DoModel()并记下这dlg1的地址 m_pDlg = &dlg1,然后在事件响应函数app::OnStartResult()先ASSERT_VALID(m_pDlg)。
这样操作的时候,每次在启动完成后,在app::OnStartResult()中的断言都无法通过,会出现错误
用的是VC6.0开发平台,系统是Win2000,请问这是什么道理??