VC写的COM连接点事件,分别在VB6和VS2008 C#中实现回调,通过记日志发现:COM组件发起事件 ——> VB6回调函数被调用,耗时1ms
COM组件发起事件 ——> C# 回调函数被调用,耗时7ms~10ms.Net对COM的支持这么差劲吗?耗时差别这么大!有办法将COM事件触发C#回调的时间缩短吗?

解决方案 »

  1.   

    关键是老平台一点不慢,.Net下很慢
      

  2.   

    自己找到问题了
    1、COM组件如果是双重接口(dual),COM连接点事件触发VB6和VS2008 C#回调函数确实有差异,VB6的回调函数响应会快3ms左右。非双重接口的COM组件没这个问题
    2、无论是VB6还是VS2008 C#,调用COM组件函数交互都比较耗时,即使COM提供一个函数仅仅返回一个int型值,也要消耗至少1ms的时间,第一个贴中C#记录的时间比VB6长很多,就是因为C#回调函数中与COM交互了多次后才记的日志,这点之前没想到无论如何,问题解决,谢谢关注