tuning4you
Gebruiker
- Lid geworden
- 3 jun 2007
- Berichten
- 328
Ik heb een form aangemaakt dat een reeks .TXT bestanden doorzoekt naar een bepaalde tekst. Dit kan zeer lang duren waardoor mijn form bevriest.
Ik heb nu gevonden dat je dit via een thread kan uitvoeren. De thread doet al het werk in de achtergrond en je kan verder het form opvolgen (denk ik).
Het probleem is nu dat ik bepaalde controls wens uit te lezen vanuit mijn thread en ook gegevens wens te veranderen aan mijn listbox. Dit lukt me nog niet. Iemand een idee hoe ik dit kan oplossen?
In mijn form class heb ik het volgende:
Dim WithEvents ZoekObject As ZoekenClass
Sub AreaDoneEventHandler(ByVal tekst As String) Handles ZoekObject.ThreadDone
MsgBox(tekst)
End Sub
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
ZoekObject = New ZoekenClass()
Dim Thread As New System.Threading.Thread(AddressOf ZoekObject.ZoekBestand)
Thread.Start()
end sub
In mijn ZoekenClass heb ik het volgende:
Public Event ThreadDone(ByVal tekst As String)
Sub ZoekBestand()
Dim tekst As String = txtFolder.Text
RaiseEvent ThreadDone(tekst)
End Sub
Ik heb nu gevonden dat je dit via een thread kan uitvoeren. De thread doet al het werk in de achtergrond en je kan verder het form opvolgen (denk ik).
Het probleem is nu dat ik bepaalde controls wens uit te lezen vanuit mijn thread en ook gegevens wens te veranderen aan mijn listbox. Dit lukt me nog niet. Iemand een idee hoe ik dit kan oplossen?
In mijn form class heb ik het volgende:
Dim WithEvents ZoekObject As ZoekenClass
Sub AreaDoneEventHandler(ByVal tekst As String) Handles ZoekObject.ThreadDone
MsgBox(tekst)
End Sub
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
ZoekObject = New ZoekenClass()
Dim Thread As New System.Threading.Thread(AddressOf ZoekObject.ZoekBestand)
Thread.Start()
end sub
In mijn ZoekenClass heb ik het volgende:
Public Event ThreadDone(ByVal tekst As String)
Sub ZoekBestand()
Dim tekst As String = txtFolder.Text
RaiseEvent ThreadDone(tekst)
End Sub