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 Sub
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
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 .