zoukankan      html  css  js  c++  java
  • 异步和多线程的区别

    多线程会有一个工作线程,占用更多的CPU。

    异步将使用DMA模式的IO操作

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var p = new Program();
    
                var url = "http://bj.58.com/";
    
                p.Asynchronous(url);
                p.MultiThread(url);
                Console.ReadKey();
            }
    
            void Asynchronous(string url)
            {
                var request = HttpWebRequest.Create(url);
                request.BeginGetResponse((IAsyncResult ar) => {
                    var request_inner = ar.AsyncState as WebRequest;
                    var response = request.EndGetResponse(ar);
                    read(response, "Asynchronous");
                }, request);
            }
    
            void MultiThread(string url)
            {
                var t = new Thread(() =>
                {
                    var request = HttpWebRequest.Create(url);
                    var response = request.GetResponse();
                    read(response, "MultiThread");
                });
                t.Start();
            }
    
            private static void read(WebResponse response, string funcname)
            {
                var stream = response.GetResponseStream();
                using (var reader = new StreamReader(stream))
                {
                    Console.WriteLine("{0} {1}", funcname, reader.ReadToEnd().Length);
                }
            }
        }
    }
  • 相关阅读:
    NuGet包介绍
    修改逻辑文件名
    检查扫描文件系统
    C# Newtonsoft.Json不序列字段
    HierarchyId通过父节点创建一个新的子节点
    常用SQL语句
    redis脚本
    asp.net 的一个简单进度条功能
    .Net C#向远程服务器Api上传文件
    使用IKVM在C#中调用JAVA程序
  • 原文地址:https://www.cnblogs.com/goodspeed/p/4068380.html
Copyright © 2011-2022 走看看