SO WIRD´S GEMACHT: Erstellen eines Threads mit Visual Basic .NET

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
315577 HOW TO: Create a Thread Using Visual Basic .NET
Hinweis: Die Verwendung der hier aufgeführten Informationen sowie Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen.


Weitere Informationen zu den von Microsoft angebotenen Supportoptionen finden Sie unter folgender Internetadresse:

Zusammenfassung

In Visual Studio .NET können Sie Multithread-Anwendungen schreiben. Dieser Artikel veranschaulicht, wie Sie mit einer einfachen Visual Basic .NET-Anwendung Threads erstellen und verwalten können.

Voraussetzungen

Der folgenden Liste entnehmen Sie bitte die empfohlene Hardware, Software und Netzwerkinfrastruktur sowie die benötigten Service Packs:
  • Microsoft Windows 2000 oder Microsoft Windows XP
  • Microsoft Visual Basic .NET
In diesem Artikel wird vorausgesetzt, dass Sie über Erfahrungen auf den folgenden Gebieten verfügen:
  • Visual Basic .NET-Programmierung
  • Visual Studio .NET-IDE (IDE = Integrated Development Environment)

Erstellen einer Visual Basic .NET-Anwendung mit Threads

  1. Starten Sie "Microsoft Visual Studio .NET".
  2. Erstellen Sie in Visual Basic ein neues Windows-Anwendungsprojekt mit dem Namen "ThreadWinApp".
  3. Fügen Sie dem Formular ein Button-Steuerelement hinzu. Die Schaltfläche erhält standardmäßig den Namen Button1.
  4. Fügen Sie dem Formular eine ProgressBar-Komponente hinzu. Die Statusleiste erhält standardmäßig den Namen ProgressBar1.
  5. Klicken Sie mit der rechten Maustaste auf das Formular, und klicken Sie danach auf Code anzeigen.
  6. Fügen Sie am Anfang der Datei die folgende Anweisung ein:
    Imports System.Threading
  7. Fügen Sie den folgenden Click-Ereignishandler für Button1 hinzu:
    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. Fügen Sie der Klasse Form1 die folgende Variable hinzu:
    Private trd As Thread
  9. Fügen Sie der Klasse Form1 die folgende Methode hinzu:
    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
    Anmerkung: Dies ist der Code, der dem Thread zugrunde liegt. Dieser Code ist eine Endlosschleife, durch die der Wert in ProgressBar1 nach dem Zufallsprinzip erhöht oder vermindert und dann vor der Fortsetzung 100 Millisekunden gewartet wird.
  10. Fügen Sie den folgenden Load-Ereignishandler für Form1 hinzu: Dieser Code erstellt einen neuen Thread, macht diesen Thread zu einem Hintergrundthread und startet ihn dann.
    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

Funktionsprüfung

  1. Erstellen Sie die Anwendung und führen Sie sie aus. Dass der neue Thread in Funktion ist können Sie daran erkennen, dass sich der Wert in der Statusleiste willkürlich ändert.
  2. Klicken Sie die Schaltfläche auf dem Formular an, um zu demonstrieren, dass der Hauptthread unabhängig von dem Thread ist, der den Wert in ProgressBar ändert. In einem Meldungsfeld wird die folgende Fehlermeldung angezeigt:

    This is the main thread
    Warten Sie auf Input. Beachten Sie bitte, dass sich der Wert in der Statusleiste weiterhin verändert.

Problembehandlung

Wenn Sie in komplexeren Anwendungen auf gemeinsam genutzte Variablen zugreifen, stellen Sie bitte sicher, dass Sie die Threads synchronisieren. Weitere Informationen finden Sie in der Visual Basic-Onlinehilfe unter SyncLock und ähnlichen Themen.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 315577 – Letzte Überarbeitung: 09.09.2003 – Revision: 1

Feedback