2014-04-28 70 views
-3

時的記憶,我得到這個錯誤創造出比賽場

An unhandled exception of type 'System.OutOfMemoryException' occurred in System.Drawing.dll 
Additional information: Out of memory. 

只要運行這個一分鐘

using (var imageBuffer = new Bitmap(500, 300)) 
     { 

      using (var graphicsObject = Graphics.FromImage(imageBuffer)) 
      { 
       graphicsObject.Clear(Color.Azure); 

       using (var boundryPen = new Pen(Brushes.Black, 10)) 
       { 
        graphicsObject.DrawRectangle(boundryPen, 0, 0, 500, 300); 
       } 

       g.DrawImage((Image)imageBuffer.Clone(), 80, 45); // error coming from this line 
      } 
     } 

後,我是新來的C#。我試圖做g.dispose(),但它不讓我運行該程序。

+2

這是一個循環中的整個聲明?通過創建無限的克隆? – RustyH

+1

你爲什麼使用'Clone()'? – siride

+0

這怎麼可能*運行一分鐘*? –

回答

1

不要在imageBuffer上使用Clone,您可以直接將它繪製到屏幕上。另外,g從哪裏來?如果這段代碼在循環中,這可能很重要。

+0

在我看來,這不會回答'OutOfMemoryException'問題。 –

+1

@PatrickHofman:公平地說,沒有足夠的信息來真正回答問題。同樣,OOM問題沒有被克隆圖像不必要地幫助。 – siride

+0

g只是創建繪製板的'圖形g' – user3439558