Public Class Singleton(Of T As New)
Private Shared pInstance As T = Nothing
Private Shared pLocker As Object = New Object()
''' <summary>
''' Propriété permettant de retourner une instance unique... l'instance de classe passée en paramètre.
''' </summary>
''' <returns>Référence unique ... l'instance de classe.</returns>
Public Shared ReadOnly Property Instance() As T
Get
SyncLock (pLocker)
If pInstance Is Nothing Then
pInstance = New T()
End If
Return pInstance
End SyncLock
End Get
End Property
End Class