Exemplo n.º 1
0
 /// <summary>
 /// 下载中
 /// </summary>
 private void StartDownLoad()
 {
     //是否超过最大的队列
     if (_downingPicCount < _maxtask)
     {
         List <string> imgurls = HttpHelper.GetHtmlImageUrlList(LoadingUrls.FirstOrDefault());
         UsedUrls.Add(LoadingUrls.FirstOrDefault());
         LoadingUrls.RemoveAt(0);
         foreach (string url in imgurls)
         {
             if (!UsedImgUrls.Contains(url))
             {
                 //创建异步下载
                 DownloadHelper  helper      = new DownloadHelper();
                 StopTimeHandler stop        = new StopTimeHandler(helper.DowloadImg);
                 AsyncCallback   callback    = new AsyncCallback(onDownLoadFinish);
                 IAsyncResult    asyncResult = stop.BeginInvoke(url, callback, "--下载完成 \r\n");
                 //链接载入已使用
                 UsedImgUrls.Add(url);
                 TipStartDownLoad();
             }
         }
         imgurls.Clear();
         TextUrlChange("");
     }
     else
     {
         Thread.Sleep(5000);
         TextResultChange("-----------任务过多,搜集程序休眠5秒 \r\n");
     }
     DownLoading();
 }
Exemplo n.º 2
0
        /// <summary>
        /// 下载成功
        /// </summary>
        /// <param name="asyncresult"></param>
        private void onDownLoadFinish(IAsyncResult asyncresult)
        {
            AsyncResult     result = (AsyncResult)asyncresult;
            StopTimeHandler del    = (StopTimeHandler)result.AsyncDelegate;
            string          data   = (string)result.AsyncState;
            string          name   = del.EndInvoke(result);

            TextResultChange(name + data);
            _downLoadPicCount++;
            _downingPicCount--;
            TipDownLoad();
        }