Avatar billede fcjensendk Nybegynder
21. december 2005 - 13:42 Der er 2 kommentarer og
1 løsning

Fejl timer

Jeg har denne kode som gerne skulle ligge +1 i sec hvert sekundt. Det gør den også men den stopper efter ca 5-15 min. nogle der kan forklare det?

    Sub DoIt(ByVal o As Object) 'Funktion der tæller sec + 1 hver gang den bliver kørt
        If status = True Then
            sec = sec + 1
            Label10.Text = sec
        Else
            MessageBox.Show("Tiden er stoppet")
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim tim As Timer = New Timer(AddressOf DoIt, Nothing, 0, 1000) 'Henter funktionen DoIf hvert 1.sekundt
        status = True
    End Sub
End Class
Avatar billede Slettet bruger
22. december 2005 - 05:40 #1
Udsnit fra dokumentation:

As long as you are using a Timer, you must keep a reference to it. As with any managed object, a Timer is subject to garbage collection when there are no references to it. The fact that a Timer is still active does not prevent it from being collected.

Det gør du ikke så opførsel er "undefined" hvilket kunne forklare hvorfor den pludselig ikke fungere mere.
Avatar billede fcjensendk Nybegynder
22. december 2005 - 08:36 #2
Jamen det lyder jo meget logisk... Men hvor skal jeg have en referance til timeren, ved du det?

Ellers mange tak for svaret
Avatar billede Slettet bruger
22. december 2005 - 08:42 #3
Du laver din timer variable med class scope istedet for nu hvor det er metode scope
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester