我想在本地TBitmap
上绘制并返回它。因为我在主线程之外,所以在使用它之前必须锁定画布。(线程安全性如何?TBitmap(
我必须解锁画布吗?还是TBitmap
析构函数会帮我解锁?在位图上绘制后,在该函数中解锁画布,并在我想读取位图时再次锁定它是否安全,或者如果我这样做,画布是否可以被清除?
std::shared_ptr<TBitmap> f() {
std::shared_ptr<TBitmap> bmp(new TBitmap);
bmp->Canvas->Lock();
// draw on bitmap
return bmp;
}
雷米评论:
位图析构函数不会为您解锁画布。如果显式锁定,则必须显式解锁。是的,一旦解锁画布,主UI线程就可以自由清除位图资源。