TBitmap在线程中绘制有有关问题

TBitmap在线程中绘制有问题?
我在线程中对TBitmap进行绘制时,发现有微小的机率绘制出现问题,出现问题的bitmap绘制结果是白色的。绘制方法是Canvas.Draw, 我又试了Bitblt(bmp.Canvas.Handle...)这种方式,同样也有问题。
但在主线程中不会出现这种情况。

还有TBitmap.Canvas.Pixels方法,在线程中也有问题,这个机率较大些,具体过程如下:
1. 在线程中创建一TBitmap,加载一个PixelFormat = pf1bit的位图(也就是通常黑白两色的mask)
2. 循环用TBitmap.Canvas.Pixels取出各点的颜色值,你会发现,取出的值有可能不等于clBlack,也不等于clWhite

为什么在线程中会出现这样的情况? 又该如避免?

------解决方案--------------------
TBitmap.Canvas.BeginUpdate;
xxx
TBitmap.Canvas.EndUpdate;

锁一下先。
------解决方案--------------------
Delphi(Pascal) code
uses SyncObjs;
var :TCriticalSection;

  UserListCs.Acquire;
//在这里写上绘图代码试试
  UserListCs.Release;