想要在隔离存储中完成存储过程之前加载符号

时间:2012-03-27 06:45:08

标签: windows-phone-7 silverlight-4.0 windows-phone-7.1 isolatedstorage

我从绝对网址下载了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();

    }
}

}

1 个答案:

答案 0 :(得分:0)

如果您只想显示此长时间运行任务的进度,则只需添加ProgressBar即可。将Minimum设置为0,将Maximum设置为200(或者您要下载的图片数量不多),然后在每次图像下载报告完成时,只需将ProgressBar的Value增加一个

一旦下载了所有图像(即值==最大值),您就知道可以删除加载指示符。

您可能还应考虑为用户提供取消下载的方法,以及在使用该应用之前是否必须下载所有图像。