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

可以根据需要激活新部件实例的激活器。

返回

新的或检索到的部件。

注解

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

适用于