【发布时间】:2011-07-13 10:56:57
【问题描述】:
所以我正在用 C# 编写一个组件,其中包含需要通过 COM 向 VB6 公开的事件。
我已经完成了here 列出的所有步骤,并且事件本身运行良好。
但是,应用程序机制中的某些东西意味着有时 COM 事件未传递(当多个事件连续触发时,只有第一个事件通过) .在.net 端作为事件引发之前以及在 VB 端处理它之后,我已经进入了跟踪数据的阶段。它们不仅被排队或乱序传送(将(更多)可接受),它们被提出但未被接收。所有事件都是从同一个 .net 线程引发的。 当我单步执行代码时,它们都已正确交付;在一个简单的测试应用程序中,它们都可以“快速”交付。
因此,VB 应用程序的某些其他部分似乎阻止了这些事件的传递。我应该从哪里开始寻找?例如,DoEvent 是否会产生意想不到的副作用?
编辑:澄清上述只有第一批通过。
编辑:重述案例(最初认为 COM 包装器是问题所在)
【问题讨论】: