Требуется загрузка символа до завершения процесса хранения в изолированном хранилище - PullRequest
0 голосов
/ 27 марта 2012

Я скачал 200 изображений с абсолютного URL-адреса и хранится в изолированном хранилище. Я хочу, чтобы один за другим отображался в моем списке или на панели стека. Я хочу, чтобы на панели стека отображался символ загрузки до завершения загрузки и сохранения 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 голосов
/ 29 марта 2012

Если все, что вы хотите сделать, это показать ход выполнения этой длительной задачи, просто добавьте ProgressBar.Установите для Minimum значение 0, для Maximum - 200 (или сколько изображений вы собираетесь загружать), а затем по мере завершения загрузки каждого изображения просто увеличивайте Value ProgressBar на единицу.

После того, как все изображения были загружены (т. Е. Значение == Максимум), вы знаете, что можете удалить индикатор загрузки.

Возможно, вам также следует подумать о том, как предоставить пользователю возможность отменить загрузку и действительно ли вынеобходимо загрузить все изображения перед использованием приложения.

...