我可以将TCriticalSection
对象声明为公共字段,例如:
type TMyObject = class public CS: TCriticalSection; end;
我想公开该字段以允许任何线程进入和离开临界区对象,这在内部保护TMyObject
实例的完整性.那么,我可以将TCriticalSection
对象声明为公共类字段吗?
简单的答案是肯定的.一个班级的领域是一个非常正常的举办地TCriticalSection
.
为了使关键部分能够序列化对共享资源的访问,所有线程必须引用关键部分的相同实例.因此,根据这一事实,您可以得出结论,您需要确保所有线程都引用该类的相同实例.然后,当他们读取该类的关键部分字段时,所有线程都访问关键部分的同一实例.
通常认为声明公共字段是不好的做法.您通常会通过属性或类的方法来公开这样的事情.