webclient.DownloadStringAsync之后有个函数专门负责下载后的任务,在当前请求未结束之前,能否再使用同一个webclient再次请求其他url?想做个多线程采集,能这么做就简单了

解决方案 »

  1.   

    可以啊,要同时请求几个页面,就用几次这个方法
     ////利用 WebClient 来下载图片
     using (WebClient wc = new WebClient())
     {
      //WebClient 下载完毕的响应事件绑定
      wc.DownloadDataCompleted += new DownloadDataCompletedEventHandler(wc_DownloadDataCompleted);  //开始异步下载,图片URL路径请根据实际情况自己去指定                            
      wc.DownloadDataAsync(new Uri("http://www.baidu.com"), 1);
    }
     /// <summary>
     /// 图片下载完毕 
     /// </summary>
     /// <param name="sender"></param>
     /// <param name="e"></param>
     void wc_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
     {
        try
        {
              ////如果下载过程未发生错误,并且未被中途取消
               if (e.Error == null && !e.Cancelled)
              {
                   ////e.Result 就是下载结果
                     object o = e.Result;
              }
         }
         catch
         {
         }
    }