I en inte så avlägsen förflutna , datorer helt enkelt simuleras det faktum att de var multitasking . Med dubbla kärnor och eller flera processorer , datorer inte längre simulera multitasking , de faktiskt multitasking . I många fall operativsystemet kommer att dela uppgifter fram för att köras på olika processorer , men som utvecklare använda Visual Basic . NET är det inte möjligt att explicit multi-tråd ansökan . Instruktioner
1
Starta Visual Basic och skapa ett nytt Windows Forms projektet .
2
Lägg " Import System.Threading " som den första raden i koden fil för den huvudsakliga formulär . Addera 3
Placera en knapp och fem knappar radio på huvudformuläret . Ändra knappen texten till " Spawn Thread " och etiketten radioknapparna " Lägsta ", " lägre än normalt ", " Normal ", " Above Normal " och " Högsta ". Namnge radio knappar " RB1 , " " RB2 , " " RB3 , " " RB4 " och " RB5 " respektive
4
Lägg denna kod för knappens klick åtgärd : .
Private Sub Button1_Click ( ByVal avsändaren som System.Object , ByVal e Som System.EventArgs ) Handtag Button1.Click
Dim t Som Thread
t = Nytt Inlägg ( AddressOf Me.BackgroundProcess )
Om rb1.Checked Sedan
t.Priority = ThreadPriority.Lowest
ElseIf rb2.Checked Sedan
t.Priority = ThreadPriority.BelowNormal
< p> ElseIf rb3.Checked Sedan
t.Priority = ThreadPriority.Normal
ElseIf rb4.Checked Sedan
t.Priority = ThreadPriority.AboveNormal
ElseIf rb5.Checked Sedan
t.Priority = ThreadPriority.Highest
End If
t.Start ( ) katalog
End Sub
5
annan sub rutin till denna fil som anges här :
Private sub BackgroundProcess ( ) katalog
Dim f som New WorkerBee
f.Show ( )
End Sub
Observera att detta skapar en annan form som kallas " WorkerBee " som inte har skapats än , så ignorera felet för nu .
6
Lägg annan form för att projektet och namnet det " WorkerBee " och placera en etikett på blankett som heter " LABEL1 . " Detta borde vara standard namn för etiketten
7
Lägg till följande två subrutiner till WorkerBee kod fil : .
Private Sub WorkerBee_Activated ( ByVal avsändare As Object , ByVal e som System . EventArgs ) Hanterar Me.Activated
" Gör aktiviteten av tråden här , eller ring någon annan rutin ( er) från
Dim i As Integer = 1
Do While sanna
Label1.Text = " Iterationer : " + i.ToString
i + = 1
Application.DoEvents ( ) katalog
Loop
End Sub
Private Sub WorkerBee_FormClosing ( ByVal avsändare As Object , ByVal e Som System.Windows.Forms.FormClosingEventArgs ) hanterar Me.FormClosing
" Abort tråden när formuläret stängs ned , annars appen brukar stänga
Thread.CurrentThread.Abort ( ) katalog
End Sub
8
Kör programmet . Välj olika radioknappar och klicka på knappen för att leka tråden med den prioriteras . Lägg märke till hur trådar med samma prioritet vistelsen ungefär samma antal isär på iterationer , men en högprioriterad tråd snabbt ökar över en låg prioritet tråd .