我写了几个类。父类里边开启线程 在线程开头初始化com
然后子类重载了父类的几个函数 在线程内部调用子类重载的函数。
我测试的时候运行到重载函数里边主程序是2线程 一条主线程和一条我自己开的子线程
但是一旦创建了com对象之后 线程就 变成7条 。 当我停止掉子线程之后 会变为4条线程
然后我把程序挂在那里等了半天线程又慢慢变为3条 2条。这是为什么。?是和我调用的com库有关的吗

解决方案 »

  1.   

    估计是和我用的com有关了.我用我找来调用这个com的框架试了一次还是一样。。
    我先前用的是自己改写过的。 我还以为我改错了。。
      

  2.   

    是啊。。跟你的COM组件有关系啊。
      

  3.   

    不知道你的COM对象是怎么实现的
    但各种通讯都要不停监测是否新收到了数据,不开新线程那才叫见鬼
      

  4.   

    COM是别人创建的吗?别人内部可能要做什么工作,想开几条开几条。
      

  5.   

    如果COM你有代码,就看看,没有的话,如果影响不大,就不要纠结了。:)
      

  6.   

    我现在也碰到这个问题了,CoInitialize()后多了一条线程,CComGITPtr后又多了2条,我创建的是MTA,Console测试用的是CoInitialize(NULL).后来好像CComGITPtr还有点问题,没有办法识别传来的cookie,报E_INVALIDARG,还在Debug中...可能是操作系统搞的prox-stub对,你创建的对象无法放到你的线程中(套间类型不匹配),于是系统自己创建一个线程套间。
      

  7.   

    回复于:2012-10-22 07:58:39不知道你的COM对象是怎么实现的
    但各种通讯都要不停监测是否新收到了数据,不开新线程那才叫见鬼 
     
      

  8.   

    已经解决了  感谢各位 联系了com的作者他自己在里边做了工作