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

高并发访问同一个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秒肯定会慢的啊。。然后你可以考虑下并行,百度下并行是怎么用的,推送的时候可以异步进行

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?