Come multi-thread in Visual Basic

July 4

Come multi-thread in Visual Basic


In un passato non troppo lontano, i computer semplicemente simulato il fatto che sono stati multitasking. Con dual core e o più processori, i computer simulano più multitasking, che in realtà sono multitasking. In molti casi il sistema operativo suddiviso compiti per funzionare su processori diversi, ma come sviluppatore utilizzando Visual Basic .NET non è possibile esplicitamente multi-infilare l'applicazione.

istruzione

1 Avviare Visual Basic e creare un nuovo progetto Windows Form.

2 Aggiungere "Le importazioni System.Threading" come prima riga nel file di codice per il modulo principale.

3 Posizionare un pulsante e cinque pulsanti di opzione nel modulo principale. Modificare il testo del pulsante a "Discussione Spawn" e etichettare i pulsanti di opzione "basso", "Sotto Normal", "Normal", "superiore al normale" e "alto". Nome i pulsanti di opzione "RB1," "RB2," "RB3", "RB4" e "RB5", rispettivamente.

4 Aggiungere questo codice per l'azione click del pulsante:

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

Dim t Come Discussione

t = nuova discussione (AddressOf Me.BackgroundProcess)

Se rb1.Checked Poi

t.Priority = ThreadPriority.Lowest

ElseIf rb2.Checked Poi

t.Priority = ThreadPriority.BelowNormal

ElseIf rb3.Checked Poi

t.Priority = ThreadPriority.Normal

ElseIf rb4.Checked Poi

t.Priority = ThreadPriority.AboveNormal

ElseIf rb5.Checked Poi

t.Priority = ThreadPriority.Highest

Finisci se

t.Start ()

End Sub

5 Un altro sub di routine per questo file come specificato qui:

Private Sub BackgroundProcess()

Dim f come nuovo ape operaia

f.Show ()

End Sub

Si noti che questo crea un altro modulo chiamato "ape operaia" che non è stato ancora creato, in modo da ignorare l'errore, per ora.

6 Aggiungere un'altra forma al progetto e il nome "ape operaia" e inserire un'etichetta sul modulo chiamato "label1." Questo dovrebbe essere il nome di default per l'etichetta.

7 Aggiungere i seguenti due subroutine al file di codice del ape operaia:

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

'Fare l'attività del thread qui, o chiamare qualche altro di routine (s)

Dim i As Integer = 1

Do While True

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

i + = 1

Application.DoEvents ()

Ciclo continuo

End Sub

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

'Interrompere il filo quando il modulo chiude, altrimenti l'applicazione solito vicino

Thread.CurrentThread.Abort()

End Sub

8 Eseguire l'applicazione. Selezionare diversi pulsanti di opzione e fare clic sul pulsante per generare il filo con il dato priorità. Si noti come le discussioni con la stessa priorità rimangono circa lo stesso numero di parte sulle iterazioni, ma un filo ad alta priorità aumenta rapidamente nel corso di un filo a bassa priorità.

Consigli e avvertenze

  • Molte volte il filo solito comportano un elemento dell'interfaccia utente, ma lo faranno processi lunghi che non sono momento delicato in background.
  • Questo è solo un semplice esempio di multi-threading. Multi-tasking un'applicazione è un'abilità avanzata e deve fare con cura e un sacco di test.
  • Assicurarsi di salvare il lavoro prima di eseguire il programma nel caso in cui i computer si blocca e non può essere salvato.