zoukankan      html  css  js  c++  java
  • WebClient的异步处理

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        public class Download
        {
            object LockObject = new object();
    
            public static void Main(string[] args)
            {
                var url = "http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-client-community-6.0.11-0.sles10.i586.rpm";
    
                new Download().Run(url);
            }
    
            void Run(string url)
            {
                var wc = new WebClient();
    
                wc.DownloadProgressChanged += (sender, e) =>
                {
                    if (Monitor.IsEntered(LockObject))
                    {
                        return;
                    }
                    Monitor.Enter(LockObject);
                    var left = Console.CursorLeft;
                    for (int i = 0; i < left; i++)
                    {
                        Console.Write('');
                    }
    
                    var display = e.BytesReceived.ToString() + "/" + e.TotalBytesToReceive.ToString() + "	" + e.ProgressPercentage + "%";
    
                    Console.Write(display);
                    Monitor.Exit(LockObject);
                };
    
                wc.DownloadDataCompleted += (object sender, DownloadDataCompletedEventArgs e) =>
                {
                    Console.WriteLine();
                    Console.WriteLine("Finish");
                };
                Console.WriteLine("Start");
                wc.DownloadDataAsync(new Uri(url));
                while (wc.IsBusy)
                {
                    Thread.Sleep(1000);
                }
                
            }
        }
    }
  • 相关阅读:
    日常小算法
    美化type="file"控件
    流文件_从网络中获取文件
    Kibana配置安装
    JDK安装
    Node.js安装windows环境
    RabbitMQ高可用
    RabbitMQ实例C#
    RabbitMQ基础命令rabbitmqctl
    RabbitMQ配置
  • 原文地址:https://www.cnblogs.com/goodspeed/p/3509186.html
Copyright © 2011-2022 走看看