Es werden immer öfter Fragen zu Threads in VB.NET gestellt. Ralf_oop hat hierzu im Forum diesen interessanten Beitrag mit grundlegenden Information zu Verwendung von Threads erstellt, der nicht verloren gehen sollte: Als erstes sollte man eine Prozedur haben, die relativ lange braucht, um seine Aufgabe auszuführen (also relativ rechenintensiv). Hier eine sehr sinnvolle Version Sub Zählen() Dim i As Integer For i = 1 To 10000 Console.WriteLine("Hallo Welt zum {0}-ten Mal", i) Next End Sub Zweitens muss eine Instanz der Thread-Klasse mit der Prozedur, die ausgeführt werden soll, erstellt werden: Dim Thread As New Threading.Thread(AddressOf Zählen) Jetzt kann man den Thread starten: Thread.Start() Beendet werden kann der Thread mit Abort(). Dies löst eine ThreadAbortException aus. Damit wird signalisiert, dass der Thread beendet werden soll. Diese Exception kann abgefangen werden, um evtl. abschließende Aufgaben (z.B. eine Datei schließen) noch auszuführen. Hier ein kleines Beispiel: Shared Sub Zählen() Dim i As Integer Try For i = 1 To 10000 Console.WriteLine("Hallo Welt zum {0}-ten mal.", i) Next Catch ex As ThreadAbortException ' hier Aufräumarbeiten einfügen Return End Try End Sub Shared Sub main() Dim Thread As New Threading.Thread(AddressOf Zählen) Thread.Start() ' irgendwelche Aufgaben, die den Thread beenden wollen Thread.Abort() ' wenn man jetzt den Thread wieder starten möchte, wird eine Exception ausgelöst End Sub Threads kann man mit Suspend() anhalten. Allerdings wird der Thread nicht sofort angehalten, sondern erst, wenn ein sogenannter sicherer Punkt erreicht ist. Dieser wird vom .NET Framework festgelegt. Um einen Thread wieder auszuführen verwendet man die Resume()-Methode. Mit Sleep() kann der Thread für einen bestimmten Zeitraum (in Millisekunden) angehalten werden. ' Thread für eine Sekunde anhalten Thread.Sleep(1000) Mit Sleep(0) kann man übrigens ein Umschalten zwischen den Threads erreichen. Falls man auf das Ende eines anderen Threads warten will, kann dies mit der Join-Methode erreicht werden. Denkbar wäre dies, wenn ein Thread Daten liest und der Hauptthread solange wartet, bis alle Daten gelesen worden sind. Dim Hauptthread As Threading.Thread = Threading.Thread.CurrentThread Threads haben Eigenschaften, wovon die folgenden am Wichtigsten sind:
Dies wären die Grundlagen zum Thema Threading. Diese Seite wurde bereits 64.573 mal aufgerufen. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Buchempfehlung Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||||||||||||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |