2011-06-03 58 views
1

我將一個字節數組轉換爲一個BitmapSource。我的日常工作,我可以在「返回目標」上放置一個斷點。看到值和它的屬性幾秒鐘,然後超時,我不能訪問任何更多的屬性。這是GC'd?任何想法如何解決這一問題?GC集合問題

public static class ImageConversion 
{ 
    public static BitmapSource ConvertByteArrayToBitmapSource(Byte[] imageBytes, ImageFormat formatOfImage) 
    { 
     BitmapSource dest; 
     using (var stream = new MemoryStream()) 
     { 
      stream.Write(imageBytes,0,imageBytes.Length); 
      var decoder = new TiffBitmapDecoder(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); 
      dest = decoder.Frames[0]; 
     } 

     return dest; 
    } } 
+0

你的'byte []'有多大? – AllenG 2011-06-03 19:19:59

+0

這是673,094字節。 – strattonn 2011-06-03 19:25:58

+0

它是'dest'你不能再看到了嗎?或者它是'imageBytes','stream'還是'decoder'? – Gabe 2011-06-03 19:28:29

回答

1

dest引用的內存不會被垃圾收集,直到它被解除爲止。只要你有一些引用該內存的變量(包括dest變量本身),它就不會被收集。

這更可能是調試器問題,而不是GC問題。