Keresés

Aktív témák

  • blemidon

    tag

    válasz Panther #31 üzenetére

    A VB memóriafelszabadító algoritmusa egyszrűen úgy működik, hogyha 1 objectre nincs több hivatkozás, akkor törli. Az általam írt példában ''önmagára hivatkozás'' van, és ebbe kavarodik bele, ezért nem szabadít. Az ilyen egyébként ritka, nem nagyon szokás használni (van ahol jól jön vagy nem lehet máshogy, de mint mondottam az ritka), ilyen szempontból azért ez elég extrém példa volt.


    A megoldás:

    *****Class1 hez hozzáadod a következő eljárást:

    Public Sub Deallocate()

    ' Törli a saját magára mutató hivatkozást
    A.Deallocate
    Set A = Nothing

    End Sub

    *****Valamint a main loopban

    Do
    Set A = New Class1

    'itt lenne a leak, ha csak sima A = nothing lenne
    A.Deallocate
    Set A = Nothing

    DoEvents
    Loop

    ennyi.

Aktív témák