Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

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

Ten artykuł został opublikowany wcześniej pod numerem PL315577
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.

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

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 formantButton. Domyślnie zostaje mu nadana nazwaButton1.
  4. Dodaj do formularza składnikProgressBar. Domyślnie zostaje mu nadana nazwaProgressBar1.
  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 zdarzeniaClickdla formantuButton1:
    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 klasyForm1:
    Private trd As Thread
  9. Dodaj następującą metodę do klasyForm1:
    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
    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ępuProgressBar1, a następnie czeka 100 milisekund, zanim wznowi działanie.
  10. Dodaj następującą procedurę obsługi zdarzeniaLoaddla formularzaForm1. 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

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.

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 instrukcjiSyncLocki tematy pokrewne w Pomocy online języka Visual Basic.

wielowątkowe
Właściwości

Identyfikator artykułu: 315577 — ostatni przegląd: 02/24/2002 20:35:00 — zmiana: 1.0

Microsoft Visual Basic .NET 2002 Standard Edition

  • kbhowto kbhowtomaster KB315577
Opinia