Wenn TBitmap nicht Threadsafe ist bringt das aber rein gar nichts. Zwar werden dann icht die Objectdaten übergeben sondern eben nur ein Pointer auf die Instanzdaten aber wenn du mit dem Object arbeitest werden ja dann doch wieder diese Daten angesprochen (auch beim dereferenzieren wenn man das wirklich machen wöllte). Wenn ein Object also nicht Threadsafe ist kann man es auch nicht über den Umweg von Pointern bearbeiten um es Threadsafe zu machen.
Sinnvoller wäre hier die Verwendung von Handles:
Delphi-Quellcode:
//Dem Thread das Bitmaphandle übergeben
//im Thread:
var
mybitmap: TBitmap;
begin
myBitmap := TBitmap.Create();
myBitmap.Handle := uebergebenes_Bitmap_Handle;
//now you can work with the bitmap
myBitmap.Handle := 0;
myBitmap.Free;
end;