Estoy llamando a algún código que utiliza la clase BitmapData de .NET. He golpeado algo donde no puedo encontrar una respuesta definitiva en Googlespace.unlockbits, lockbits, y try-finally
Porque parece que LockBits y UnLockBits siempre deben ser llamados en un par, estoy usando esto:
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);
}
(Hace poco he estado jugando con la instrucción using, que es muy útil en C#, lo que me dio la idea de que debería hacer esto.) El problema es que, incluso la propia documentación de MS (http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx) no cree que sea adecuado utilizar el patrón try-finally.
¿Es finalmente necesario o gratuito?
Actualización: Puedo terminar atrapando y volviendo a lanzar la excepción, ya que no sé lo que podría ser y no los estaba detectando antes.
Gracias!
Un buen punto, aquí. El código no es nuestro; pertenece a una biblioteca propietaria con la que trabajamos. – Chris