Должен ли я разблокировать TBitmap canvas после его блокировки?

Я хочу рисовать на местном TBitmap и верни это. Поскольку я вне основного потока, я должен заблокировать холст перед его использованием. (Насколько потокобезопасен TBitmap)

Должен ли я когда-нибудь разблокировать холст или TBitmap деструктор сделать это для меня? Безопасно ли разблокировать холст в этой функции после рисования на растровом изображении и снова заблокировать его, когда я хочу прочитать растровое изображение, или может ли холст очиститься, если я это сделаю?

std::shared_ptr<TBitmap> f() {
std::shared_ptr<TBitmap> bmp(new TBitmap);
bmp->Canvas->Lock();
// draw on bitmap
return bmp;
}

1

Решение

Как прокомментировал Реми:

Деструктор растрового изображения НЕ откроет холст для вас. Если вы явно заблокировали его, вы должны явно разблокировать его. И да, как только вы разблокируете холст, основной поток пользовательского интерфейса может свободно очищать растровые ресурсы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]