.NET에서 BitmapData 클래스를 사용하는 일부 코드를 호출하고 있습니다. Googlespace에서 확실한 답을 찾을 수없는 무언가를 발견했습니다. unlockbits, lockbits 및 try-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 패턴을 사용하기에는 적합하지 않다는 것입니다.
try-finally 필요 또는 무료입니까?
업데이트 : 나는 그것이 무엇인지 모르고 이전에 잡아 내지 못했기 때문에 예외를 포착하고 재실행 할 수 있습니다.
감사!
좋은 지적입니다. 코드가 우리 코드가 아닙니다. 그것은 우리가 함께 작업하는 독점 라이브러리에 속합니다. – Chris