Synchronization object for delegate registration since it can happen from multiple threads. e.g. primitives added in batch through ParallelFor(AddPrimitiveBatches.Num(),&{FOptionalTaskTagScopeScope(ETaskTag::EParallelGameThread); Scene->AddPrimitive(...); } or RecreateRenderState_Concurrent that will unregister and register delegates from multiple threads.