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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 315577 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ten artykuł został opublikowany wcześniej pod numerem PL315577
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

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 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

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

Właściwości

Numer ID artykułu: 315577 - Ostatnia weryfikacja: 24 lutego 2002 - Weryfikacja: 1.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Visual Basic .NET 2002 Standard Edition
Słowa kluczowe: 
kbhowto kbhowtomaster KB315577

Przekaż opinię

 

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