LifetimeContext.GetOrCreate 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检索具有指定 ID 的共享部件实例,或如果找不到该部件实例,则在指定操作中使用指定创建器创建并共享一个部件实例。
public:
System::Object ^ GetOrCreate(int sharingId, System::Composition::Hosting::Core::CompositionOperation ^ operation, System::Composition::Hosting::Core::CompositeActivator ^ creator);
public object GetOrCreate (int sharingId, System.Composition.Hosting.Core.CompositionOperation operation, System.Composition.Hosting.Core.CompositeActivator creator);
member this.GetOrCreate : int * System.Composition.Hosting.Core.CompositionOperation * System.Composition.Hosting.Core.CompositeActivator -> obj
Public Function GetOrCreate (sharingId As Integer, operation As CompositionOperation, creator As CompositeActivator) As Object
参数
- sharingId
- Int32
共享部件的 ID。
- operation
- CompositionOperation
要在其中创建部件的操作(如需)。
- creator
- CompositeActivator
如果需要,可以激活新部件实例的激活器。
返回
新的或已检索的部件。
注解
如果部件实例已存在,则此方法是无锁的。 如果必须创建部件实例,则将采用一个锁,以序列化使用此方法的其他写入, (并发读取将继续是安全的且无锁) 。 在生存期树中,组合(因此锁获取)严格是叶到根的,这一点很重要。