la méthode GC.SuppressFinalize
Bonjour à tous,
en fait j'ai une classe qui manipule des unmanaged ressources c'est pour cela que j'ai réimplemeter la méthode finalize et dispose
Code:
1 2 3 4 5
|
Public Overloads Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub |
Code:
1 2 3 4 5 6 7
|
Protected Overrides Sub Finalize()
LogError("I am finalized by the GC")
Dispose(False)
MyBase.Finalize()
End Sub |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
' Check to see if Dispose has already been called.
If Not (Me.disposed) Then
' If disposing equals true, dispose all managed
' and unmanaged resources.
If (disposing) Then
' Dispose managed resources.
'Components.Dispose()
End If
SLCConnection = Nothing
End If
Me.disposed = True
End Sub |
mais le problème que le GC n'accède pas à la méthode finalize est ce que c'est à cause l'instruction "GC.SuppressFinalize(Me)" dans la méthode dispose ?? ou c'est un autre pb ??
est est ce que quelqu'un peut m'expliquer l'ordre entre dipose() finalize() et le garbage collecting .
Merci beaucoup :) .