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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public Overloads Sub Dispose() Implements IDisposable.Dispose Dispose(True) GC.SuppressFinalize(Me) End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Protected Overrides Sub Finalize() LogError("I am finalized by the GC") Dispose(False) MyBase.Finalize() End Submais 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 ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
est est ce que quelqu'un peut m'expliquer l'ordre entre dipose() finalize() et le garbage collecting .
Merci beaucoup.
Partager