嗯,这个几个程序是运行在同一台程序上的,他们的模型应该是这样把?
                         ------
                         |Service   |
                         ------------
                              |
                              | 
                           ---------
                           |Proxy  |
                           ---------
                            |  |   |
                  -----------  |    ---------
                  |            |             |
                  |            |             |
              --------     --------       --------
              | dll  |     | dll  |       | dll  |
              --------     --------       --------上面的Proxy_stub到服务器端的调用怎么才能变成多个通道呢?

解决方案 »

  1.   

    你弄错了,proxy对组件的调用本来就不是序列化的,
      

  2.   

    ?我测试了一下,在本机上的三个线程同时通过代理调用服务程序提供的同一个接口的方法,这个方法里面仅仅是sleep(3000),结果他们三个的返回是这样的:
      3  返回  3 返回  3 返回
    而不是
    3 返回,返回,返回这样还不能说明是通过代理时把调用变成的顺序的吗?!嗯,我的服务程序和客户都是在同一台机子上的
      

  3.   

    我觉得我没有搞错,因为我使用了一个程序测试,是这样的,一个客户端程序启动了三个线程,这三个线程都创建服务提供的接口的指针,调用同一个接口的方法,当然,这个服务程序是exe的方式,需要通过proxy_stub访问,在接口的方法中我仅仅是sleep(3000);结果是这样的,
    3 返回,3 返回,3 返回
    而不是
    3 返回,返回,返回嗯,这不能说明这些调用在通过proxy时被变成顺序访问的吗?!
      

  4.   

    难道是我用了sleep的原因吗?!
      

  5.   

    你三个线程中都有PROXY,且是独立的.无所谓多线程!
      

  6.   

    但是事实上他们确实是顺序调用了啊,有没有什么办法让这三个线程对服务器的接口的方法调用变成彼此独立的呢?尽管我在接口中已经定义了CComObjectRootEx<CComMultiThreadModel>,但是我觉得他是针对多个代理的,而每个代理对他的访问都是顺序的,正因为这三个线程用的都是同一个代理,所以才变成顺序的把?
    你有什么办法让他们的访问变成彼此独立的吗?