zoukankan      html  css  js  c++  java
  • 在多线程环境下使用HttpWebRequest或者调用Web Service

    using System;
    using System.Diagnostics;
    using System.Threading;
    using System.Net;

    namespace MultiThread
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    Thread thread = new Thread(new ThreadStart(MakeThread));
    thread.Start();
    Console.ReadLine();
    }

    private static int count = 30;
    private static int max = 10;
    private static int x = 0;
    private static int y = 0;

    private static void MakeThread()
    {
    while (x < count)
    {
    if (y < max)
    {
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create ("http://www.google.com");
    req.Timeout = 100000;
    ThreadPool.QueueUserWorkItem(new WaitCallback(MakeWebRequest), req);
    Interlocked.Increment(ref y);
    }
    Thread.Sleep(0);
    }
    Console.WriteLine("=======================================");
    }

    private static void MakeWebRequest (object obj)
    {
    HttpWebRequest req = obj as HttpWebRequest;
    HttpWebResponse res = null;
    try
    {
    Console.WriteLine ("\nConnecting to " + req.RequestUri);
    res = (HttpWebResponse) req.GetResponse ();
    Console.WriteLine("[" + AppDomain.GetCurrentThreadId() + "] ContentLength:" + res.ContentLength);
    Console.WriteLine ("Connected.\n");
    }
    catch (Exception e)
    {
    if (res != null)
    {
    res.Close ();
    Interlocked.Increment(ref x);
    Interlocked.Decrement(ref y);
    res = null;
    }
    Console.WriteLine ("Source : " + e.Source);
    Console.WriteLine ("Message : " + e.Message);
    Console.WriteLine(e.ToString());
    Debug.WriteLine(e.ToString());
    }
    finally
    {
    if (res != null)
    {
    res.Close ();
    Interlocked.Increment(ref x);
    Interlocked.Decrement(ref y);
    }
    }
    }
    }
    }
  • 相关阅读:
    云架构师进阶攻略(3)
    微服务化之服务拆分与服务发现
    终于有人把云计算、大数据和人工智能讲明白了!(1)
    JavaScript的数组详解
    html中给元素添加背景图片或者gif动图
    JavaScript的事件
    JavaScript的匿名函数
    JavaScript获取和操作html的元素
    JavaScript的条件运算符与条件语句
    JavaScript变量、数据类型、函数
  • 原文地址:https://www.cnblogs.com/kokoliu/p/475911.html
Copyright © 2011-2022 走看看