語言

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

一個能在必要時啟動新零件的啟動器。

傳回

新的或取回的部分。

備註

若零件實例已存在,此方法即為無鎖。 若必須建立該零件實例,則會取得一個鎖,將序列化其他使用此方法的寫入(並行讀取仍安全且無鎖)。 重要的是,組合(因此鎖的取得)必須嚴格遵循終生樹的葉節點到根。

適用於