05. januar 2010 - 18:39Der er
7 kommentarer og 1 løsning
Løbende opdatering af værdier
Jeg har et vb.net program der når det åbner henter værdier fra en række forskellige FTP-servere og indsætter dem i tekstbokse i en form.
Jeg kunne godt tænke mig løbende at opdatere værdierne, altså sådan set køre 'form load' igen automatisk ca. hvert 5. minut, men omvendt ønsker jeg ikke at programmet skal stå og køre i 'vente'-mode, da det tilsyneladende får maskinen til at gå lidt i baglås, og jeg i øvrigt gerne vil give brugerne adgang til at rette i nogle felter.
Hvordan kan jeg gøre det (uden manuelt selv at aktivere den vha. en knap)?
Her er et super simpelt eksempel som tæller et tal op hvert sekund (1000 millisekunder):
Imports System Imports System.Threading
Public Class Form1 Private done As Boolean Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click done = False Dim t As Thread = New Thread(AddressOf TextUpdateThread) t.Start() End Sub Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click done = True End Sub Private Sub TextUpdateThread() Dim i As Integer = 0 While Not done i = i + 1 If TextBox1.InvokeRequired Then TextBox1.Invoke(New TextUpdateHandler(AddressOf TextUpdate), New Object() {i}) Else TextUpdate(i) End If Thread.Sleep(1000) End While End Sub Private Delegate Sub TextUpdateHandler(ByVal n As Integer) Private Sub TextUpdate(ByVal n As Integer) TextBox1.Text = n.ToString() End Sub End Class
Tak for det - det ser fornuftigt ud, men jeg er lidt i tvivl om hvordan jeg skal lave det. Jeg ønsker principielt bare at den skal kalde en sub hver gang den har ventet et stykke tid.
Jeg kan ikke helt gennemskue måden du bruger invoke-funktionen, kan du eksemplificere hvordan man kunne gøre det, så den kalder en sub i stedet for at lægge et nummer til en textbox-værdi?
Man kan ogsaa proeve at lave det som tager lang tid i event traaden (button click) og saa kalde Application.DoEvents hyppigt. Men det er ikke nogen god ide. Der kan ske forskellige ting og sager.
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.