看看DELPHI自己的帮助先:
Data access components are thread-safe as follows: For BDE-enabled datasets,
each thread must have its own database session component. The one exception to
this is when you are using Access drivers, which are built using a Microsoft
library that is not thread-safe. For dbDirect, as long as the vendor client
library is thread-safe, the dbDirect components will be thread-safe. ADO and
InterbaseExpress components are thread-safe.
When using data access components, you must still wrap all calls that involve
data-aware controls in the Synchronize method. Thus, for example, you need to
synchronize calls that link a data control to a dataset by setting the DataSet
property of the data source object, but youdo
n抰 need to synchronize to
access the data in a field of the dataset.
For more information about using database sessions with threads in BDE-enabled
applications, see Managing multiple sessions.
VisualCLX objects are not thread-safe.
DataCLX objects are thread-safe.
Graphics objects are thread-safe. Youdo
not need to use the main
VCL or CLX thread to access TFont, TPen, TBrush, TBitmap
, TMetafile (VCL only), TDrawing (CLX only), or TIcon. Canvas objects can be
used outside the Synchronize method by locking them.
While list objects are not thread-safe, you can use a thread-safe version,
TThreadList, instead of TList.
线程安全的类是不用Synchronize的,只有非线程安全的类才需要,至于哪些是线程安全而
哪些不是,你看看上面的帮助就行了。