LifetimeContext.GetOrCreate 方法

定义

检索具有指定 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

如果需要,可以激活新部件实例的激活器。

返回

新的或已检索的部件。

注解

如果部件实例已存在,则此方法是无锁的。 如果必须创建部件实例,则将采用一个锁,以序列化使用此方法的其他写入, (并发读取将继续是安全的且无锁) 。 在生存期树中,组合(因此锁获取)严格是叶到根的,这一点很重要。

适用于