Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Coded by ShadowTzu
- 'Free to use
- 'my 3D engine, Tzu3D: http://shadowtzu.free.fr
- 'Youtube: https://www.youtube.com/user/shadowtzu
- 'Facebook: https://www.facebook.com/Tzu3d
- 'Twitter: https://twitter.com/shadowtzu
- 'Twitch: http://www.twitch.tv/shadowtzu
- 'Website: http://tzu3d.weebly.com
- ''' <summary>
- ''' Collect class for dispose every class added with one line
- ''' one call to ClassCollector.Instance.Dispose and every class added are disposed
- ''' </summary>
- ''' <remarks></remarks>
- Friend Class ClassCollector
- Implements IDisposable
- #Region "Singleton"
- Private Shared _ClassCollector As ClassCollector
- Private Shared ReadOnly mylock As New Object()
- Public Shared Function Instance() As ClassCollector
- SyncLock (mylock)
- If _ClassCollector Is Nothing Then
- _ClassCollector = New ClassCollector
- End If
- Return _ClassCollector
- End SyncLock
- End Function
- Public Shared Function IsInstanced() As Boolean
- If _ClassCollector Is Nothing Then Return False
- Return True
- End Function
- #End Region
- Private mClassList As Collection
- Private Sub New()
- mClassList = New Collection
- End Sub
- Friend Sub Add(ByRef AnyClass As Object)
- mClassList.Add(AnyClass)
- End Sub
- #Region "Destructor: Dispose Every class added"
- Private disposedValue As Boolean = False
- Protected Friend Overridable Sub Dispose(ByVal disposing As Boolean)
- If Not Me.disposedValue Then
- If disposing Then
- For Each anyclass As IDisposable In mClassList
- anyclass.Dispose()
- anyclass = Nothing
- Next
- mClassList.Clear()
- mClassList = Nothing
- End If
- End If
- Me.disposedValue = True
- End Sub
- Friend Sub Dispose() Implements IDisposable.Dispose
- Dispose(True)
- GC.SuppressFinalize(Me)
- End Sub
- #End Region
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement