Nwlapcug.com


Come Multi-Thread in Visual Basic

Come Multi-Thread in Visual Basic


In passato non così lontano, computer simulato semplicemente il fatto che essi erano multitasking. Con dual core e o più processori, i computer non più simulano multitasking, effettivamente sono multitasking. In molti casi, il sistema operativo dividerà i compiti fino al eseguito su processori diversi, ma come uno sviluppatore utilizza Visual Basic non è possibile in modo esplicito multi-thread dell'applicazione.

Istruzioni

1

Avviare Visual Basic e creare un nuovo progetto Windows Form.

2

Aggiungi "Imports System. Threading" come la prima riga nel file di codice per il form principale.

3

Inserire un pulsante e cinque pulsanti di opzione della maschera principale. Modificare il testo del pulsante in "Thread di Spawn" etichetta radio pulsanti e "Più basso", "Sotto il normale," "Normale", "Superiore al normale" e "Massima". Nome i pulsanti di opzione "rb1," "rb2," "rb3," "rb4" e "rb5" rispettivamente.

4

Aggiungere questo codice per azione di clic del pulsante:

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

Dim t As Thread

t = New Thread(AddressOf Me.BackgroundProcess)

If rb1.Checked Then

t.Priority = ThreadPriority.Lowest

ElseIf rb2.Checked Then

t.Priority = ThreadPriority.BelowNormal

ElseIf rb3.Checked Then

t.Priority = ThreadPriority.Normal

ElseIf rb4.Checked Then

t.Priority = ThreadPriority.AboveNormal

ElseIf rb5.Checked Then

t.Priority = ThreadPriority.Highest

End If

t.Start()

End Sub5

Un'altra routine sub a questo file come specificato qui:

Private Sub BackgroundProcess()

Dim f As New WorkerBee

f.Show()

End Sub

Si noti che questo crea un altro modulo chiamato "Workerbeee" che non è stato creato ancora, quindi ignorare l'errore per ora.

6

Aggiungere un altro form al progetto e denominarlo "Workerbeee" e inserire un'etichetta nel form chiamato "label1." Questo dovrebbe essere il nome predefinito per l'etichetta.

7

Aggiungere le seguenti due subroutine al file di codice di workerbeee:

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

' Fare l'attività del thread qui, o chiamare alcuni altri routine(s)

Dim i As Integer = 1

Do While True

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

i += 1

Application.DoEvents()

Loop

End Sub

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

' Abort il filo quando si chiude il modulo verso il basso, in caso contrario l'app non si chiude

Thread.CurrentThread.Abort()

End Sub8

Eseguire l'applicazione. Selezionare diversi pulsanti di opzione e fare clic sul pulsante per generare il thread con la priorità specificata. Si noti come thread con la stessa priorità rimanere circa lo stesso numero separatamente sulle iterazioni, ma un thread a priorità alta aumenta rapidamente sopra un thread con priorità bassa.

Consigli & Avvertenze

  • Molte volte il thread non comporta un elemento dell'interfaccia utente, ma sarà lunga processi che non sono tempo sensibile in background.
  • Questo è solo un semplice esempio di multi-threading. Multi-tasking un'applicazione è un'abilità avanzata e dovrebbe essere fatto con cura e un sacco di test.
  • Assicurarsi di salvare il lavoro prima di eseguire il programma nel caso in cui il computer si blocca e non può essere salvato.