对不起,上面忘写了一个finally和end,程序编译没有错误,就是运行时报错

解决方案 »

  1.   

    好像不用这么复杂吧,
    com本身不就是一个线程类,你好像不用创建线程(个人意见)
      

  2.   

    但是我的这个COM+组件执行的时间非常长,所以才需要用一个线程实现,因为如果不这么做那调用这个这个组件的方法的时候应用程序就会没有反馈。
      

  3.   

    DANA, 对COM操作,是应该考虑用线程的, 线程模型对于COM就是一个至关重要的东西。我做过类似操作的,不过我没有直接创建DCOMconnection, 而是单独把Dcomconnection组件放
    在一个数据模块中, 设置好了属性后再在线程中创建这个数据模块,
    这样简便一些, 不易出错。另外,    CoInitializeEx(nil, COINIT_MULTITHREADED);
    这一句,, 是把客户端线程设置为FREE THREAD 模型。
    可以考虑设置成
       CoInitializeEx(nil, 2);
    也就是设置成Apartment 线程模型
    这样可以对线程安全性更好。。