将图像存储在背景中的孤立存储中

时间:2014-01-10 05:00:41

标签: windows-phone-7

我正在开发应用程序,其中我首先检查图像是否存在于独立存储中。如果图像不存在,那么我先下载然后将它们存储在隔离存储中。但是我得到了异常“类型'系统的例外。 ObjectDisposedException'发生在mscorlib.ni.dll中,但未在用户代码中处理“using (IsolatedStorageFileStream mystream = istore.CreateFile(item.ImageUrl)).

  private void checkimage(Model item)
    {
        using (IsolatedStorageFile istore = IsolatedStorageFile.GetUserStoreForApplication())
        {

            if (istore.FileExists(item.ImageUrl))
            {

            }
            else
            {
                BitmapImage imgage = new BitmapImage(new Uri(item.ImageUrl, UriKind.Absolute));
                imgage.CreateOptions = BitmapCreateOptions.BackgroundCreation;
                imgage.ImageOpened += (o, e) =>
                    {
                        using (IsolatedStorageFileStream mystream = istore.CreateFile(item.ImageUrl))
                        {
                            BitmapImage bitmap = new BitmapImage();
                            bitmap.SetSource(mystream);
                            WriteableBitmap wb = new WriteableBitmap(bitmap);

                            Extensions.SaveJpeg(wb, mystream, wb.PixelWidth, wb.PixelHeight, 0, 85);
                            mystream.Close();
                        }

                    };
               }
        }
        }

1 个答案:

答案 0 :(得分:1)

当您尝试创建文件时,看起来istore已被销毁。尝试在事件体中再次创建(istore)或使用全局变量并手动处理。

例如:将BitmapImage imgage...移到第一个using之外,然后再次创建istore。