民工_ 2018-06-13 07:38 采纳率: 50%
浏览 5922
已结题

高并发访问同一个webservice 问题 怎么提高速度

有个客户接口 接受我推送过去的数据 ,所以我写了个循环进行价格推送。

因为数据量大 所以我写了多线程

foreach (var roomlist in hotelRoomInfoList)
{
// Thread.Sleep(10000);//每个线程间隙10秒
if (roomlist != null && roomlist.Count > 0)
{
//多线程
Thread thread = new Thread(new ParameterizedThreadStart(RoomInfoProcessThread));//创建线程
thread.Start(roomlist); //启动线程
}

}

         private void RoomInfoProcessThread(object obj_roomlist)
    {
                        foreach (var roomInfo in roomInfoList)
            {
                             _service.Request(roomInfo);
                        }
            }


            问题是反应速度 很慢  是不是windows什么地方限制了  
            每秒对外访问的次数有限?

            有没有大神有什么好的解决方法?



            已解决 :

            谢谢大家 

            加上 
            //最大连接数
    httpWebRequest.ServicePoint.ConnectionLimit = int.MaxValue;

            可恶的连接数默认值  限制了!默认同时只能请求2个 改了就好了!!
  • 写回答

10条回答 默认 最新

  • oBeiPiao12 2018-06-13 07:42
    关注

    你每个线程都要停留10秒肯定会慢的啊。。然后你可以考虑下并行,百度下并行是怎么用的,推送的时候可以异步进行

    评论

报告相同问题?