我打電話給一些使用.NET的BitmapData類的代碼。我碰到了一些我無法在Google桌面上找到明確答案的地方。unlockbits,lockbits,並試試finally
因爲它似乎LockBits和UnlockBits必須始終以一對叫,我使用的是這樣的:
System.Drawing.Imaging.BitmapData tempImageData = tempImage.LockBits(
new System.Drawing.Rectangle(0, 0, tempImage.Width, tempImage.Height),
System.Drawing.Imaging.ImageLockMode.ReadOnly, tempImage.PixelFormat);
try
{
//use external library on the data
}//Exception not handled here; throw to calling method
finally
{
tempImage.UnlockBits(tempImageData);
}
(我最近一直與using語句,這是非常有用的玩耍C#,這讓我覺得我應該這樣做。)麻煩的是,即使MS自己的文檔(http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx)也不認爲它適合使用try-finally模式。
試試最後是必要的還是無償的?
更新:我可能最終會捕捉並重新拋出異常,因爲我不知道它可能是什麼,也沒有早期捕捉它們。
謝謝!
一個很好的觀點,在這裏。 該代碼不是我們的;它屬於我們合作的專有庫。 – Chris 2008-09-25 15:33:41