0

我已经从绝对URL下载了200个图像并存储在独立存储中。我想要在我的列表或堆叠面板中逐个显示。我希望堆叠面板显示加载符号,直到下载完成并将第200张图像存储在独立存储器中。想要加载符号,直到存储过程在隔离存储中完成

 if (h < 150) 
     { 

      WebClient m_webClient = new WebClient(); 

      Uri m_uri = new Uri("http://d1mu9ule1cy7bp.cloudfront.net/2012/media/catalogues/47/pages/p_" + h + "/IKEA_mobile_high.jpg"); 

      m_webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted); 

      m_webClient.OpenReadAsync(m_uri); 

     } 
    } 

    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
    { 
     int count; 

     try 
     { 
      Stream stream = e.Result; 

      byte[] buffer = new byte[1024]; 


      using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 

       //isf.Remove(); 


       using (System.IO.IsolatedStorage.IsolatedStorageFileStream isfs = new IsolatedStorageFileStream("IMAGES" + loop2(k) + ".jpg", FileMode.Create, isf)) 
       { 
        count = 0; 

        while (0 < (count = stream.Read(buffer, 0, buffer.Length))) 
        { 
         isfs.Write(buffer, 0, count); 
        } 

        stream.Close(); 
        isfs.Close(); 
       } 
      } 
     } 



     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 

     GetImages(); 

    } 
} 

}

+0

而你的问题是什么? – 2012-03-28 15:39:54

+0

我想显示进度条并在我的页面中显示完成的下载过程的百分比,直到在孤立存储中下载的所有图像。我已经通过上面显示的代码下载了图像。 – 2012-03-29 06:38:46

回答

0

如果你想要做的是显示这个长时间运行任务的进度,然后只需添加一个ProgressBar。将其设置为Minimum为0,即Maximum至200(或者您要下载的许多图像),然后当每个图像下载报告完成时,只需将ProgressBar的Value加1即可。

所有图像下载完成后(即Value == Maximum),您知道可以删除您的加载指示器。

您应该考虑为用户提供一种取消下载的方式,以及您是否真的必须在应用程序可以使用之前下载所有图像。