还要控制线程何时销毁,因此才有人提倡尽量不要在COM里面创建用户线程。但是还是可以用。

解决方案 »

  1.   

    arxing(阿行),现在我已经做到在组件内部开线程并接收服务器传的文件,虽然这样的方式我在感情上很难接受但是还是得做何时结束线程的问题真的是非常重要,然后在现成里面不能创建新的对象,而且最好是使用WORKER线程。初始化,从而让线程可以进入一个套间在问这个问题前,靠,从来没有写过多线程的程序,这几天简直是要疯了,办公台上全是摊开的书,幸好有J。J。HOU的WIN32多线程程序设计
      

  2.   

    试试采用连接点或者COM+订阅等方式等来接收服务器传来的文件吧,比开一个监控线程更合乎COM+规范。
    如果你组件内线程创建不了组件,如果所有组件是在同一个ATL Project里面的,你可以用CoObject.CoCreateInstance()或者直接用new操作符创建吧,灵活一点使用,效率还搞一些。不过如果你要把创建的对象再传递给远程组件的话,我不知道COM+能不能自己处理好调度的事情,试试吧。
      

  3.   

    Sorry,是CComObject.CoCreateInstance()。
      

  4.   

    好好看看 COM原理与应用 这本书,里面讲解的很详细
      

  5.   

    arxing(阿行) :如果可以用COM+的话,或许不存在现在这样的问题了。TMD,DOMINO现在还是不支持COM+啊
      

  6.   

    swordchueng(意笑花痴)把domino和com结合起来,有创意
      

  7.   

    fantong(饭桶 贱卖中,包月5000) :斑竹兄,人在江湖,身不由己啊!!!
      

  8.   

    ytweiwei(无情) :你没有理解我的问题的意思!!不是问COM里面的线程模型,而是在COM里实现多线程!!
      

  9.   

    在组件中实现多线程,一点问题都没有.我所写的绝大部分组件都是有多个线程的.
    在COM里实现多线程跟在一般的程序中实现多线程是一样的,注意事项也是一样的.要注意的是线程结束的问题.既然组件是多线程的,建议提供一个stop的方法供客户停止你的工作.