0
J'utilise le code suivant pour tester un problème que j'essaie de résoudre.Vb.net WPF répartiteur délégué fuite de la mémoire aide
Class MainWindow
Dim bw As BackgroundWorker = New BackgroundWorker()
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
AddHandler bw.DoWork, AddressOf bw_DoWork
AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
bw.RunWorkerAsync()
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
For i As Integer = 0 To 250000
Dim d As New test_delegate(AddressOf test)
Dispatcher.Invoke(d, " SUPER SUPER SUPERSPERSUPERSUPERvSUPERSUPERSUPERSUPERv LONG Test")
Next
End Sub
Private Delegate Sub test_delegate(ByVal txt As String)
Private Sub test(ByVal txt As String)
txtTest.Text = txt
End Sub
End Class
L'application laisse fuir la mémoire lentement mais sensiblement. Comment puis-je nettoyer (ou éliminer) chaque délégué que je suis en train de créer? puisqu'il n'y a pas de but?
merci!
J'ai couru cet exemple, mais je ne vois aucune fuite de mémoire. Je vois une légère augmentation de la mémoire au fil du temps, mais rien qui indique qu'il y a quelque chose de plus que la surcharge de 250k délégués. – rossisdead
c'est vrai, mais les 250k délégués en mémoire ne disparaissent jamais ... comment puis-je les faire partir après que j'en ai fini avec eux? – tcables