Cita de: Novlucker en 7 Agosto 2013, 20:31 PMYo creo que el problema está no en la función, sino en ejecutar esa función constantemente tan rápido. Se crean más datos de los que se alcanzan a liberar.
Lo que dices es muy lógico, es lo primero que se llega a pensar, puede que si que quizás en 50 ms se generen más datos de los que se pueden liberar, pero además de eso estoy seguro de que hay una fuga en esa función, y la prueba definitiva la di al principio, con este code:
Código (vbnet) [Seleccionar]
Public Class Form1
Dim isbinded As Boolean = False
Dim Winamp As clsWACC = New clsWACC
Dim WithEvents mytimer As New Timer With {.Interval = 50, .Enabled = True}
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles mytimer.Tick
isbinded = Winamp.Bind()
' Label1.Text = isbinded
' isbinded = Nothing
End Sub
End Class
Símplemente el Test consiste en crear una APP con ese código (y adjuntar la dll de la función Bind claro xD).
Repito que si uso un Timer de 10 segundos (o 20, o los que sean) la RAM sigue subiendo progresívamente, solo que se generarán los bytes mucho más lento porque el timer es más lento así que hay que dejar la app un buen rato corriendo para apreciar el aumentado del consumo de RAM, pero en fín yo creo que en 10-20 segundos el GC tiene tiempo de liberar...
Saludos!