JAK: Tworzenie wątku za pomocą programu Visual Basic .NET

Streszczenie

W programie Visual Basic .NET można pisać aplikacje wielowątkowe. W tym artykule pokazano, jak prosta aplikacja programu Visual Basic .NET może tworzyć wątki i zarządzać nimi.


powrót do początku

Wymagania

Oto lista wymaganych elementów, takich jak sprzęt, oprogramowanie, infrastruktura sieci i dodatki Service Pack:
  • System Microsoft Windows 2000 lub Microsoft Windows XP
  • Program Microsoft Visual Studio .NET
W artykule założono, że czytelnik zna następujące tematy:
  • Programowanie w programie Visual Basic .NET
  • Interfejs Integrated Development Environment (IDE) programu Visual Studio .NET
powrót do początku

Tworzenie aplikacji programu Visual Basic .NET z wątkami

  1. Uruchom program Microsoft Visual Studio .NET.
  2. Utwórz nowy projekt aplikacji języka Visual Basic dla systemu Windows o nazwie ThreadWinApp.
  3. Dodaj do formularza formant
    Button. Domyślnie zostaje mu nadana nazwa
    Button1.
  4. Dodaj do formularza składnik
    ProgressBar. Domyślnie zostaje mu nadana nazwa
    ProgressBar1.
  5. Kliknij formularz prawym przyciskiem myszy, a następnie kliknij polecenie View Code.
  6. Dodaj następującą instrukcję na początku pliku:
    Imports System.Threading
  7. Dodaj następującą procedurę obsługi zdarzenia
    Click
    dla formantu
    Button1:
    Private Sub Button1_Click( _
    ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click

    MessageBox.Show("To jest wątek główny")
    End Sub
  8. Dodaj następującą zmienną do klasy
    Form1:
    Private trd As Thread
  9. Dodaj następującą metodę do klasy
    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
    UWAGA: Ten kod posłuży do utworzenia wątku. Jest to nieskończona pętla, która losowo zwiększa lub zmniejsza wartość w pasku postępu
    ProgressBar1, a następnie czeka 100 milisekund, zanim wznowi działanie.
  10. Dodaj następującą procedurę obsługi zdarzenia
    Load
    dla formularza
    Form1. Ten kod tworzy nowy wątek, ustawia go jako wątek w tle, a następnie uruchamia ten wątek.
    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
powrót do początku

Testowanie kodu

  1. Skompiluj i uruchom aplikację. Zauważ, że wartość w pasku postępu zmienia się losowo. W ten sposób działa nowy wątek.
  2. Aby pokazać, że wątek główny jest niezależny od wątku, który zmienia wartość
    ProgressBar, kliknij przycisk na formularzu. W oknie komunikatu zostaje wyświetlony następujący komunikat:

    To jest wątek główny
    Poczekaj na dane wejściowe. Zauważ, że wartość w pasku postępu nadal się zmienia.
powrót do początku

Rozwiązywanie problemów

W przypadku bardziej złożonych aplikacji pamiętaj, aby zsynchronizować wiele wątków, gdy uzyskujesz dostęp do wspólnych zmiennych. Aby uzyskać więcej informacji, zobacz opis instrukcji
SyncLock
i tematy pokrewne w Pomocy online języka Visual Basic.


powrót do początku
Właściwości

Identyfikator artykułu: 315577 — ostatni przegląd: 24.02.2002 — zmiana: 1

Opinia