Kann nicht auf geschlossenen Stream zugreifen

Ich versuche das zu benutzenAnwendungsblock zwischenspeichern um einige Bilder zwischenzuspeichern (das Rendern dieser Bilder dauert sehr lange)

  BitmapSource bitmapSource; ///some bitmap source already created
  _cache ///  Caching Application Block
  String someId; //id for this image, used as the key for the cache

  using (var stream = new MemoryStream())
    {
        PngBitmapEncoder encoder = new PngBitmapEncoder();
        encoder.Interlace = PngInterlaceOption.On;
        encoder.Frames.Add(BitmapFrame.Create(bitmapSource));             
        encoder.Save(stream);
        _cache.Add(someId, stream);
    }

Und laden Sie sie dann mit:

imStream = (Stream)_cache.GetData(someId));
if (imStream != null)
{
    PngBitmapDecoder decoder = new PngBitmapDecoder(imStream,  BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
    return decoder.Frames[0];  //return the bitmap source
}

Aber während des Ladens erhalte ich die folgende Ausnahme bei dieser "neuen PngBitmapDecoder" -Zeile:

"Kann nicht auf einen geschlossenen Stream zugreifen.

Ich verstehe, dass ich den Stream im obigen Code geschlossen habe, aber macht _cache.Add () keine Kopie (über Serialization), bevor er beendet wird? Wie wird der Stream korrekt serialisiert?

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage