Должен ли я разблокировать 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 ответ

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

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

Другие вопросы по тегам