Al momento sei offline in attesa che la connessione Internet venga ristabilita

HOW TO: Creare un thread con Visual Basic .NET

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I315577
Sommario
In Visual Basic .NET è possibile scrivere applicazioni con multithreading. In questo articolo viene dimostrato come una semplice applicazione Visual Basic .NET possa creare e gestire thread.

Torna all'inizio

Requisiti

Nell'elenco che segue vengono indicati l'hardware, il software, l'infrastruttura di rete e i Service Pack necessari:
  • Microsoft Windows 2000 o Microsoft Windows XP
  • Microsoft Visual Basic .NET
In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Programmazione Visual Basic .NET
  • Ambiente di sviluppo integrato (IDE) di Visual Studio .NET
Torna all'inizio

Creare un'applicazione Visual Basic .NET con thread

  1. Avviare Microsoft Visual Studio .NET.
  2. Creare una nuova Applicazione Windows di Visual Basic denominata ThreadWinApp.
  3. Aggiungere al form un controllo Button. In base all'impostazione predefinita il pulsante verrà denominato Button1.
  4. Aggiungere al form un componente ProgressBar. In base all'impostazione predefinita, il controllo verrà denominato ProgressBar1.
  5. Fare clic con il pulsante destro del mouse sul form, quindi scegliere Visualizza codice.
  6. Aggiungere l'istruzione seguente all'inizio del file:
    Imports System.Threading
  7. Aggiungere il seguente gestore eventi Click per Button1:
    Private Sub Button1_Click( _    ByVal sender As System.Object, ByVal e As System.EventArgs) _    Handles Button1.Click    MessageBox.Show("This is the main thread")End Sub
  8. Aggiungere la variabile seguente alla classe Form1:
    Private trd As Thread
  9. Aggiungere il metodo seguente alla classe Form1:
    Private Sub ThreadTask()    Dim stp As Integer    Dim newval As Integer    Dim rnd As New Random()    Do        stp = ProgressBar1.Step * rnd.Next(-1, 2)        newval = ProgressBar1.Value + stp        If newval > ProgressBar1.Maximum Then            newval = ProgressBar1.Maximum        ElseIf newval < ProgressBar1.Minimum Then            newval = ProgressBar1.Minimum        End If        ProgressBar1.Value = newval        Thread.Sleep(100)    LoopEnd Sub
    NOTA: di seguito è riportato il codice sottostante il thread. È un ciclo infinito che incrementa o decrementa casualmente il valore nel controllo ProgressBar1 e quindi attende 100 millisecondi prima di continuare.
  10. Aggiungere il seguente gestore eventi Load per Form1. Questo codice crea un nuovo thread, lo rende un thread in background e quindi lo avvia.
    Private Sub Form1_Load( _    ByVal sender As System.Object, ByVal e As System.EventArgs) _    Handles MyBase.Load    trd = New Thread(AddressOf ThreadTask)    trd.IsBackground = True    trd.Start()End Sub
Torna all'inizio

Verificare il funzionamento

  1. Compilare ed eseguire l'applicazione. Si noti che il valore dell'indicatore di stato cambia casualmente. Questo indica che il nuovo thread è in funzione.
  2. Per dimostrare che il thread principale è indipendente dal thread che modifica il valore ProgressBar, fare clic sul pulsante nel form. Verrà visualizzato il seguente messaggio:
    This is the main thread
    Attendere l'input. Si noti che il valore dell'indicatore di stato continua a cambiare.
Torna all'inizio

Risoluzione dei problemi

In applicazioni più complesse assicurarsi di sincronizzare thread multipli quando si accede a variabili condivise. Per ulteriori informazioni, vedere l'istruzione SyncLock e gli argomenti correlati nella Guida in linea di Visual Basic.

Torna all'inizio
multi-threaded
Proprietà

ID articolo: 315577 - Ultima revisione: 04/14/2002 12:10:00 - Revisione: 1.0

  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbhowto kbhowtomaster KB315577
Feedback