HOW TO: Creare un thread con Visual Basic .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 315577 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I315577
Espandi tutto | Chiudi tutto

In questa pagina

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.

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

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)
        Loop
    End 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

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.

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.

Proprietà

Identificativo articolo: 315577 - Ultima modifica: domenica 14 aprile 2002 - Revisione: 1.0
Le informazioni in questo articolo si applicano a
  • Microsoft Visual Basic .NET 2002 Standard Edition
Chiavi: 
kbhowto kbhowtomaster KB315577
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com