小弟用7个线程分别去调用7个webservice,用来得到数据库中的数据,(每个webservice分别对应一个数据库).但等待7个线程全部结束需要很长时间,还不如不用多线程,直接用循环顺次调用7个webservice,比用多线程要快得多,不知为什么,还请高手指教!

解决方案 »

  1.   

    to fd7893:
    可是我的7个webservice分别在不同的机器上,数据库也在不同的机器上.用循环也得分别调用每个webservice.为什么他就只用了6秒,而多线程用了49秒?
      

  2.   

    你的7个webservice不是同时做的,也就是说,你要等待一个webservice完成后才进行下面一个,虽然说是7个webservice,但是实际上是一个webservice进行工作,中间还有线程间的切换时间
      

  3.   

    sorry,说错了肯定有死锁的情况,如果7个线程互不影响,即使完全同步也不可能慢那么多
    顶多慢一点而已(线程切换的时间)
      

  4.   

    /*
    你的7个webservice不是同时做的,也就是说,你要等待一个webservice完成后才进行下面一个,虽然说是7个webservice,但是实际上是一个webservice进行工作,中间还有线程间的切换时间
    */只线程切换的的开销不可能慢那么多的,肯定有死锁的情况
      

  5.   

    你把类似Monitor.Wait();的等待,还有Sleep都去掉看看。虽然可能引起线程冲突,不过看看速度,测试一下总是问题不大的。