using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Threading;
using System.Net.Sockets;
using System.Net.NetworkInformation;
public class ThreadDemo
{
public static void Main()
{
List<Thread> tls = new List<Thread>();
System.Net.ServicePointManager.DefaultConnectionLimit = ;//最大并发数,.net默认并发只有2个
for (int i = ; i < ; i++)
{
tls.Add(new Thread(new ThreadStart(test)));
tls[i].Name = "线程" + (i + );
tls[i].Start();
}
}
public static void test()
{
new RequestTest().GetRequest(Thread.CurrentThread.Name, "http://163.com");
}
} public class RequestTest
{
System.Net.HttpWebRequest httpReq = null;
System.Net.HttpWebResponse httpRes = null;
/// <summary>
/// 通过WebRequest来访问网址,网址必须包含http:或https:
/// </summary>
/// <param name="threadName">当前线程</param>
/// <param name="url">要访问的网址</param>
public void GetRequest(string threadName, string url)
{
if (string.IsNullOrEmpty(url) || url.Length <= ) return;
DateTime dt = DateTime.Now;
if (!url.Contains("."))
{
return;
}
if (!url.Contains("http://") && !url.Contains("https://"))
url = "http://" + url;
try
{
httpReq = (HttpWebRequest)WebRequest.Create(url);
httpReq.Proxy = null;//不使用代理 .NET4.0中的默认代理是开启的
httpReq.KeepAlive = false;//不建立持久性连接
httpReq.Timeout = ;//连接网址的超时时间
httpReq.ReadWriteTimeout = ;//读取网址内容的超时时间
httpRes = (HttpWebResponse)httpReq.GetResponse();
Console.WriteLine(threadName + " " + url + ":" + httpRes.StatusCode);
}
catch (Exception e)
{
Console.WriteLine(threadName + " " + url + " Error:" + e.Message);
}
finally
{
if (httpRes != null)
{
httpRes.Close();//关闭连接
}
if (httpReq != null)
{
httpReq.Abort();//中止请求
}
httpReq = null;
httpRes = null;
System.GC.Collect();//强制垃圾回收,并释放资源
}
}
}

参考:

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. hihocoder 1866 XOR

    题面在这里 拆位分析一下就OK啦 /* y + (y xor x) */ #include<bits/stdc++.h> #define ll long long using namesp ...

  2. Go Web编程 第四章--处理请求

    请求和响应 Request结构 URL字段 Header字段 Body字段 Form, PostForm, MultipartForm字段 在处理器函数中,我们可以通过Request获取各个字段的详细 ...

  3. sgu 261

    学习了元根的一些知识,哈哈. 总结一下: 几个概念: 阶:对于模数m和整数a,并且gcd(m,a)==1,那么定义a在模m下的阶r为满足ar=1 mod m的最小正整数. 性质1:r in [1,ph ...

  4. hierarchyid有关的一些函数

    于hierarchyid有关的一些函数主要有:    GetAncestor :取得某一个级别的祖先    GetDescendant :取得某一个级别的子代    GetLevel :取得级别    ...

  5. PHP获取数组中奇偶数

    获取PHP数组中的奇偶数,可通过数组过滤函数array_filter(),看定义:该函数把输入数组中的每个键值传给回调函数.如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中.数组键名 ...

  6. LoadRunner的简单使用《第一篇》

    LoadRunner是一个用压力测试的软件.这东西比较难上手,光安装就非常麻烦.好不容易一步步跟着安装说明安装好之后,还是用不了. 记录一个问题如下: 导入脚本的时候报错fail to create ...

  7. Cesium 坐标系转换

    cesium中常用的坐标有两种WGS84地理坐标系和笛卡尔空间坐标系(世界坐标).我们平时常用的以经纬度来指明一个地点就是用的WGS84坐标,笛卡尔空间坐标系常用来做一些空间位置变换如平移旋转缩放等等 ...

  8. WebSocket重连reconnecting-websocket.js的使用

    原文:https://www.cnblogs.com/kennyliu/p/6477746.html   页面引用 <script src="~/Scripts/reconnectin ...

  9. org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----WebKitFormBoundaryRAYPKeHKTYSNdzc1;charset=UTF-8' not supported

    原文:https://www.cnblogs.com/yueli/p/7552888.html 最近同事在做一个图片上传功能.在入参 body 中同时传入文件和其它基本信息结果出现如题异常.在此记录下 ...

  10. 不知道如何处理的Windows Phone异常

    后台收到这么一段异常信息,从下文中看是SQL Server Compact database出错了,但怎么出错的,为什么会出错,如何避免? 没有一点办法,如果您fix过这种问题,恳请指点迷津,谢谢! ...