我写了一个控件,VC调用厂商DLL,其中在activex中我自写了一个工作线程用于监听外设,判断数据后触发activex事件发生。结果:
1、发现事件可以在vb程序中触发,也可以写一些代码,但是不能够设置断点,设置断点就会崩溃。如果写代码,可以顺利执行。2、我改写成服务调用activex,但是还是更麻烦的是这个线程根本就没有触发事件,我可以肯定外部设备有数据进入,但是无法确定线程是否启动,或者启动了,但肯定没有触发事件。我怀疑是VB的核心代码本身不支持这类多线程,但的确不知如何处理这个问题,高手请给出思路。

解决方案 »

  1.   

    哎,真是遗憾,半天没人顶,自己顶顶。
    我换用非工作线程,采用ontimer来实现就顺利解决了,但我不知道内部的原因,隐约觉得是VB的线程模式问题,但无法解释,希望高手能够讨论,指点一、二
      

  2.   

    要在COM里使用多线程就要很好的理解COM的线程模型,明白在各种apartment之间传递COM对象的规则,否则肯定要出错。
      

  3.   

    我也怀疑是套间问题,但是我不能够理解为什么写成桌面应用就可以,但是写成一个带GUI的NT service就会无法出发线程?