Hvordan multi-tråd i Visual Basic

Hvordan multi-tråd i Visual Basic


I en ikke så fjern fortid, datamaskiner bare simulert det faktum at de var multitasking. Med doble kjerner og eller flere prosessorer, datamaskiner ikke lenger simulere multitasking, de faktisk er multitasking. I mange tilfeller operativsystemet vil splitte oppgavene opp til å kjøre på forskjellige prosessorer, men som utvikler ved hjelp av Visual Basic .NET det ikke er mulig å eksplisitt multi-tråd søknaden.

Bruksanvisning

1 Begynn Visual Basic og opprette en ny Windows Forms prosjekt.

2 Legg til "Import System.Threading" som den første linjen i koden filen for den viktigste formen.

3 Plasser en knapp og fem radioknappene på den viktigste formen. Endre knappen teksten til "spawn Thread" og merke radioknappene "Lavest", "Under Normal", "Normal", "Above Normal" og "Høyeste." Navn alternativknappene "Rb1", "rb2", "RB3", "henholdsvis RB4" og "RB5".

4 Legg denne koden for knappen klikk handling:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim t Som tråden

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

Hvis rb1.Checked Deretter

t.Priority = ThreadPriority.Lowest

ElseIf rb2.Checked Deretter

t.Priority = ThreadPriority.BelowNormal

ElseIf rb3.Checked Deretter

t.Priority = ThreadPriority.Normal

ElseIf rb4.Checked Deretter

t.Priority = ThreadPriority.AboveNormal

ElseIf rb5.Checked Deretter

t.Priority = ThreadPriority.Highest

Slutt om

t.Start ()

End Sub

5 En annen sub rutine til filen som er angitt her:

Private Sub BackgroundProcess()

Dim f Som New WorkerBee

f.Show ()

End Sub

Legg merke til at dette skaper en annen form som kalles "WorkerBee" som ikke har blitt opprettet ennå, så ignorere feilen for nå.

6 Legg en annen form for prosjektet og gi den navnet "WorkerBee" og plassere en merkelapp på skjemaet som heter "Label1." Dette bør være standard navn på etiketten.

7 Legg til følgende to subrutiner til WorkerBee kode filen:

Private Sub WorkerBee_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated

'Gjøre aktiviteten av tråden her, eller ring en annen rutine (r)

Dim i As Integer = 1

Gjør Mens Sann

Label1.Text = "gjentakelser:" + i.ToString

i + = 1

Application.DoEvents ()

Loop

End Sub

Private Sub WorkerBee_FormClosing (ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Håndtak Me.FormClosing

"Abort tråden når skjemaet stenger ned, ellers app wont nær

Thread.CurrentThread.Abort()

End Sub

8 Kjør programmet. Velg forskjellige radioknapper, og klikk på knappen for å gyte tråden med prioritert. Legg merke til hvordan tråder med samme prioritet holde omtrent samme antall fra hverandre på gjentakelser, men en høyt prioritert tråd øker raskt over en lav prioritet tråden.

Hint

  • Mange ganger tråden vil ikke innebære et brukergrensesnittelement, men vil gjøre lange prosesser som ikke er tid sensitive i bakgrunnen.
  • Dette er bare et enkelt eksempel på multi-threading. Multi-tasking en søknad er en avansert dyktighet og bør gjøres med forsiktighet og masse testing.
  • Sørg for å lagre arbeidet ditt før du utfører programmet i tilfelle maskinen låser opp, og det kan ikke lagres.