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 , datorerna inte längre simulera multitasking , de faktiskt är multitasking . I många fall kommer operativsystemet att dela uppgifter för att köras på olika processorer , men som utvecklare använda Visual Basic NET är det inte möjligt att explicit multitråd ansökan
1 .
Starta Visual Basic och skapa ett nytt Windows Forms -projektet.
2 .
Lägg till " Import System. Threading " som den första raden i koden filen för huvudformuläret.
3 .
Placera en knappen och fem knappar radio på huvudformuläret. Ändra knappen text till " Spawn Thread " och etikett på knapparna "lägsta "," under det normala "," Normal "," över det normala " och " Högsta ". Namn radioknapparna " RB1 "," RB2 "," RB3 "," rb4 " och " RB5 " respektive
4
Lägg till denna kod för knappens klicka åtgärden:.
Private Sub Button1_Click ( ByVal avsändaren som System . Objekt , ByVal e Som System. EventArgs ) hanterar Button1. Click
Dim t Som tråd
t=nytt inlägg ( AddressOf Me. BackgroundProcess )
Om rb1. Checked Då
t. Priority=ThreadPriority. Lowest
ElseIf rb2. Checked Då
t. Priority=ThreadPriority. BelowNormal
ElseIf rb3. Checked Då
t. Priority=ThreadPriority. Normal
ElseIf rb4. Checked Då
t. Prioritet=ThreadPriority. AboveNormal
ElseIf rb5. Checked Då
t. Priority=ThreadPriority. Highest
End If
t. Start ( )
End Sub
5
annan sub rutin till denna fil som anges här :
Private Sub BackgroundProcess ( )
Dim f As New WorkerBee
f. Visa ( )
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 till projektet och kalla den " WorkerBee " och placera en etikett på form som kallas " Label1 . " Detta bör 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
"Innebär aktiviteten i tråden här, eller ring någon annan rutin (er )
Dim I As Integer=1
göra medan Sanna
Label1 . Text=" iterationer : " + i. ToString
+=1
Application. DoEvents ( )
Loop
End Sub
Private Sub WorkerBee_FormClosing ( ByVal avsändare As Object , ByVal e Som System. Windows. Forms. FormClosingEventArgs ) hanterar Me. FormClosing
" Avbryt tråden när formuläret läggs ner , annars app brukar nära
Thread. CurrentThread. Abort ( )
End Sub
8 .
köra programmet. Välj olika radioknappar och klicka på knappen för att leka tråden med prioriteras . Lägg märke till hur trådar med samma prioritet stanna ungefär lika många isär om iterationer , men en prioriterad tråd snabbt ökar över en låg prioritet tråden .
Previous:nothing Next:hur du uppdaterar funktioner i SQL 2005