aspx中如何响应多线程atl控件发出的事件?
h13bk 2010-05-15 11:13:10 我用atl做了一个不可见的控件,用aspx在网页上调用。
atl的event参考微软的代码,改成用IConnectionPointImplMT实现了
aspx的网页用c#制作,先添加了atl控件的引用,然后创建控件对象:
protected TestATLLib.ATL1 m_atl1 = new TestATLLib.ATL1();
设置对象的响应事件:
m_atl1.OnStrEvent += new TestATLLib._IATL1Events_OnStrEventEventHandler(OnStringEvent);
protected void OnStringEvent(string str)
{
。。。
}
现在的运行结果是,如果atl控件在主线程中fire_xxxevent,aspx页面中能收到事件,但如果在atl中另外开一个线程触发事件,aspx中就收不到事件,在vs的调试窗口中可以看到下面的出错信息:
在 System.Web.HttpException 中第一次偶然出现的“System.Web.dll”类型的异常
在 System.Reflection.TargetInvocationException 中第一次偶然出现的“mscorlib.dll”类型的异常
请问现在是atl的问题还是aspx的问题?怎样修改?