Wywołuję kod korzystający z klasy BitmapData z .NET. Uderzyłem w coś, w którym nie mogę znaleźć ostatecznej odpowiedzi w Googlespace.klucze odblokowujące, lockbity i próbne w końcu
Ponieważ wydaje się, że LockBits i UnlockBits musi być zawsze nazywa się parą, używam to:
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);
}
(I niedawno zostały gry z wykorzystaniem rachunku, co jest bardzo przydatne w C#, co dało mi pomysł, że powinienem to zrobić.) Kłopot w tym, że nawet własna dokumentacja MS (http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx) nie uważa, że jest w stanie użyć wzorca try-finally.
Czy w końcu jest to konieczne lub nieodpłatne?
Aktualizacja: Mogę skończyć łowiąc i odrzucając wyjątek, ponieważ nie wiem, co to może być i nie złapał ich wcześniej.
Dzięki!
Dobra uwaga, tutaj. Kod nie jest nasz; należy do zastrzeżonej biblioteki, z którą współpracujemy. – Chris