1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Net;
  5. using System.Threading;
  6. using System.Net.Sockets;
  7. using System.Net.NetworkInformation;
  8. public class ThreadDemo
  9. {
  10. public static void Main()
  11. {
  12. List<Thread> tls = new List<Thread>();
  13. System.Net.ServicePointManager.DefaultConnectionLimit = ;//最大并发数,.net默认并发只有2个
  14. for (int i = ; i < ; i++)
  15. {
  16. tls.Add(new Thread(new ThreadStart(test)));
  17. tls[i].Name = "线程" + (i + );
  18. tls[i].Start();
  19. }
  20. }
  21. public static void test()
  22. {
  23. new RequestTest().GetRequest(Thread.CurrentThread.Name, "http://163.com");
  24. }
  25. }
  26.  
  27. public class RequestTest
  28. {
  29. System.Net.HttpWebRequest httpReq = null;
  30. System.Net.HttpWebResponse httpRes = null;
  31. /// <summary>
  32. /// 通过WebRequest来访问网址,网址必须包含http:或https:
  33. /// </summary>
  34. /// <param name="threadName">当前线程</param>
  35. /// <param name="url">要访问的网址</param>
  36. public void GetRequest(string threadName, string url)
  37. {
  38. if (string.IsNullOrEmpty(url) || url.Length <= ) return;
  39. DateTime dt = DateTime.Now;
  40. if (!url.Contains("."))
  41. {
  42. return;
  43. }
  44. if (!url.Contains("http://") && !url.Contains("https://"))
  45. url = "http://" + url;
  46. try
  47. {
  48. httpReq = (HttpWebRequest)WebRequest.Create(url);
  49. httpReq.Proxy = null;//不使用代理 .NET4.0中的默认代理是开启的
  50. httpReq.KeepAlive = false;//不建立持久性连接
  51. httpReq.Timeout = ;//连接网址的超时时间
  52. httpReq.ReadWriteTimeout = ;//读取网址内容的超时时间
  53. httpRes = (HttpWebResponse)httpReq.GetResponse();
  54. Console.WriteLine(threadName + " " + url + ":" + httpRes.StatusCode);
  55. }
  56. catch (Exception e)
  57. {
  58. Console.WriteLine(threadName + " " + url + " Error:" + e.Message);
  59. }
  60. finally
  61. {
  62. if (httpRes != null)
  63. {
  64. httpRes.Close();//关闭连接
  65. }
  66. if (httpReq != null)
  67. {
  68. httpReq.Abort();//中止请求
  69. }
  70. httpReq = null;
  71. httpRes = null;
  72. System.GC.Collect();//强制垃圾回收,并释放资源
  73. }
  74. }
  75. }

参考:

http://www.cnblogs.com/i80386/archive/2013/01/11/2856490.html

DefaultConnectionLimit 并发

http://blogs.msdn.com/b/wenlong/archive/2009/02/08/why-only-two-concurrent-requests-for-load-testing.aspx

Proxy

http://stackoverflow.com/questions/7325572/c-webrequest-proxy-null-side-effects

http://blog.sina.com.cn/s/blog_5fc933730100w3xz.html

WebRequest多线程 超时问题的更多相关文章

  1. JAVA多线程超时加载当网页图片

    先上图: 这一次没有采取正则匹配,而采取了最简单的java分割和替代方法进行筛选图片 它能够筛选如下的图片并保存到指定的文件夹 如: “http://xxxx/xxxx/xxx.jpg” 'http: ...

  2. libcurl多线程超时设置不安全(转)

    from http://www.cnblogs.com/kex1n/p/4135263.html (1), 超时(timeout) libcurl 是 一个很不错的库,支持http,ftp等很多的协议 ...

  3. java中异步多线程超时导致的服务异常

    在项目中为了提高大并发量时的性能稳定性,经常会使用到线程池来做多线程异步操作,多线程有2种,一种是实现runnable接口,这种没有返回值,一种是实现Callable接口,这种有返回值. 当其中一个线 ...

  4. C#中的多线程超时处理实践

    最近我正在处理C#中关于timeout行为的一些bug.解决方案非常有意思,所以我在这里分享给广大博友们. 我要处理的是下面这些情况: 我们做了一个应用程序,程序中有这么一个模块,它的功能向用户显示一 ...

  5. libcurl多线程超时设置不安全

    from http://blog.csdn.net/sctq8888/article/details/10031219 (1), 超时(timeout) libcurl 是 一个很不错的库,支持htt ...

  6. WebClient的超时问题及解决

    WebClient的超时问题及解决 转自:http://blog.163.com/xiaozhi797@126/blog/static/62440288201112245345838/   Webcl ...

  7. java 抓取网页图片

    import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Out ...

  8. 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)

            目录:            第1版:http://blog.csdn.net/vipbooks/article/details/51912143            第2版:htt ...

  9. selenuim爬虫实战(日lofter.com)

    LOFTER是网易公司2011年8月下旬推出的一款轻博客产品. LOFTER专注于为用户提供简约.易用.有品质.重原创的博客工具.原创社区,以及有品质的手机博客应用. LOFTER首次采用独立域名,口 ...

随机推荐

  1. python脚本 pyqt 打包成windows可执行exe文件 pyinstaller

    今天学习pyqt,做了一些好玩的东西. 好奇之中想试试python脚本编译成可执行文件,一顿查询之后成功了! 我的环境是: windows10 64bit    python3.5    pyqt5 ...

  2. BZOJ.2125.最短路(仙人掌 圆方树)

    题目链接 圆方树.做题思路不写了.. 就是当LCA是方点时跳进那个环可以分类讨论一下用树剖而不必须用倍增: 如果v是u的(唯一的那个)重儿子,那么u的DFS序上+1的点即是要找的:否则v会引出一条新的 ...

  3. (Nginx和PHP下)URL重写,TP实现URL重写

    UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址. 优点 一:提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话 ...

  4. BZOJ 2743: [HEOI2012]采花 离线树状数组

    2743: [HEOI2012]采花 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2743 Description 萧芸斓是Z国的公主, ...

  5. 关于多重嵌套的JSON数据解析

    最近项目中需要封装一套复杂的数据模型返回给前端,大致就是一个用户会有多笔订单,每个订单下可能会有多笔保单, 大致的数据模型如下: 为了方面描述,先看一下一个用户下有一条订单,一条订单下有一个保险订单的 ...

  6. mysql数据库cup飙升处理思路

    1.先top查看是那一个进程,哪个端口占用CPU多. 2.show processeslist查看是否由于大量并发,锁引起的负载问题. 3.否则,查看慢查询,找出执行时间长的sql:explain分析 ...

  7. 使用postMessage进行react和iframe的数据通信.md

    将react的数据传递给iframe 1.首先在父组件(react文件)内引入iframe <iframe style={{border:0,width:"100%",hei ...

  8. 记ie8及以下版本ie的flash的addCallback的一坑

    近来有一需求,播放声音,我在高端浏览器实现了html5 audio标签.低端浏览器实现了flash兼容.但是在调试ie8以下的浏览器发现js死活调不了flash里的addCallback的方法,总报错 ...

  9. 华为S5300系列升级固件S5300SI-V200R001C00SPC300.cc

    附带web,V200版本的第一个固件. 附件: 链接:https://pan.baidu.com/s/1QyXIIVho9AkhxUFYJYAkcw  密码:gaxm

  10. 使用邮件和RSS两种方式,订阅博客更新通知

    分类: 系统运维 点击订阅按钮,可以订阅本博客的更新 输入您的邮件地址,可以订阅本博客的更新通知,及时了解最新内容 使用RSS,订阅-马二进三名人传记-博客 也许大家是第一次听到RSS这个概念,那什么 ...