using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;
namespace prjDownLoad
{
//读取完成委托
delegate void ReadCompletedHandler();
//读取过程委托
delegate void ReadProgressHandler(int x);
class Program
{
//添加一个AutoResetEvent
//这是一个信号机
static AutoResetEvent are = new AutoResetEvent(false);
//读取完成事件
static event ReadCompletedHandler ReadCompleted;
//读取过程事件
static event ReadProgressHandler ReadProgress;
static void Main(string[] args)
{
//Version10.0
//加上读取完成事件
//将下载数据放入线程池中。
//订阅读取完成事件
ReadCompleted += new ReadCompletedHandler(Program_ReadCompleted);
//订阅读取过程事件
ReadProgress += new ReadProgressHandler(Program_ReadProgress);
ThreadPool.QueueUserWorkItem(new WaitCallback(DownloadData));
//等着,直到有人通知说俺可以继续。
are.WaitOne();
//去掉俺最不喜欢的Console.ReadLine
//程序运行到这里为什么需要Console.ReadLine?
//因为现在如果直接结束主线程,那么异步回来的数据
//就没人接收了。
//为什么要去掉Console.ReadLine呢?
//你以为谁都像你一样的做的都是控制台应用程序?!