I en ikke så fjern fortid, datamaskiner rett og slett simulert det faktum at de var multitasking. Med doble kjerner og eller flere prosessorer , datamaskinene ikke lenger simulere multitasking , de faktisk er multitasking . I mange tilfeller operativsystemet vil splitte oppgavene opp til å kjøre på forskjellige prosessorer , men som en utvikler ved hjelp av Visual Basic. NET er det ikke mulig å eksplisitt multi -thread søknaden. Instruksjoner
en
starte Visual Basic og opprett en ny Windows Forms -prosjekt .
2
Legg til " Import System.Threading " som den første linjen i koden filen for de viktigste skjema .
3
Plasser en knapp og fem radio -knappene på den viktigste formen . Endre knappen teksten til " spawn tråden " og etiketten radioknappene " Laveste ", "Below Normal ", " Normal ", " Above Normal" og " Høyeste ". Navngi radio knapper " rb1 ", " RB2 ", " RB3 ", " RB4 " og " RB5 " henholdsvis
4
Legg denne koden for knappen er klikk handling: .
Private Sub button1_click ( ByVal avsenderen som System.Object , ByVal e Som System.EventArgs ) Håndtak Button1.Click
Dim t Som Tråd
t = ny tråd ( AddressOf Me.BackgroundProcess )
p Hvis rb1.Checked Deretter
t.Priority = ThreadPriority.Lowest
ElseIf rb2.Checked Deretter
t.Priority = ThreadPriority.BelowNormal
< p> ElseIf rb3.Checked Deretter
t.Priority = ThreadPriority.Normal
ElseIf rb4.Checked Deretter
t.Priority = ThreadPriority.AboveNormal
ElseIf rb5.Checked Deretter
t.Priority = ThreadPriority.Highest
End If
t.Start ( )
End Sub
5
annen sub rutine til filen som er angitt her : en
Private Sub BackgroundProcess ( )
Dim f som ny Workerbee
f.Show ( )
End Sub
Legg merke til at dette skaper en annen form kalt " Workerbee " som ikke er laget 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 for etiketten
7
Legg til følgende to subrutiner til Workerbee kode filen: .
Private Sub WorkerBee_Activated ( ByVal avsenderen som objekt , ByVal e Som System . EventArgs ) Håndtak Me.Activated
"Gjør det aktivitet i tråden her , eller ring en annen rutine (r )
Dim i As Integer = 1
gjøre mens sanne
Label1.Text = " gjentakelser : " + i.ToString
i + = 1
Application.DoEvents ()
Loop
End Sub
Private Sub WorkerBee_FormClosing ( ByVal avsenderen som objekt , ByVal e Som System.Windows.Forms.FormClosingEventArgs ) Håndtak Me.FormClosing
' Abort tråden når skjemaet stenger ned , ellers app vil ikke lukke
Thread.CurrentThread.Abort ( )
End Sub
8
Kjør programmet . Velg forskjellige radio knapper og klikk på knappen for å gyte tråden med prioritert. Legg merke til hvordan tråder med samme prioritet opphold omtrent samme antall hverandre på gjentakelser, men en høyt prioritert tråd raskt øker over en lav prioritet tråd.