Slik kjører Visual Basic Delrutine i bakgrunnen

Slik kjører Visual Basic Delrutine i bakgrunnen


Når et dataprogram trenger å utføre en lang trukket ut subrutine, er det best å ha det utføre subrutinen som bakgrunn tråd. En bakgrunnsprosess normalt ikke har samme prioritet som et brukergrensesnitt prosess, så det vil kjøre saktere. Subrutiner kan inkludere å se etter og laste ned oppdateringer, overføre loggfiler eller utføre lange beregninger.

Bruksanvisning

1 Begynn Visual Basic og opprett et nytt prosjekt av Windows skjemaet prosjekttype.

2 Gjør den første linjen i koden filen:

"Import System.Threading"

Og legge til:

"Dim t Som tråden"

til hovedklassen i form.

3 Legg til en knapp til skjemaet og endre navn til "btnStart." Endre knappen tekst egenskapen til «Start Bakgrunn Process."

4 Legg til følgende kode i "btnStart" klikk handling:

Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

t = ny tråd (AddressOf Me.BackgroundProcess)

t.Priority = ThreadPriority.BelowNormal 'Dette vil presse subrutine enda lenger inn i bakgrunnen

t.Start ()

End Sub

Denne rutinen vil starte en prosess i bakgrunnen og gi den en lavere enn normal prioritet så det vil kjøre litt saktere og ikke forstyrre elementene i brukergrensesnittet.

5 Legg subrutinen skal kjøre i bakgrunnen:

Private Sub BackgroundProcess()

"Gjør en lang prosess her, ikke bare en uendelig løkke

Gjør Mens Sann

Loop

End Sub

6 For grundighet, legge til følgende kode i form avsluttende metode:

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

t.Abort ()

End Sub

Uten denne rutinen, vil programmet ikke avslutter normalt fordi tråden vil fortsatt være i drift.

7 Kjør programmet og klikk på den eneste knappen på skjemaet. Dette vil starte prosessen det er å kjøre i bakgrunnen.

Hint

  • Sørg for å holde alt i subrutinen skal kjøres i bakgrunnen veldig isolert. Uten å bruke mer avanserte tråder teknikker, er det ikke mulig å vite hva som skjer til enhver tid.