vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Realisierung von Multitreating 
Autor: IsoLizer
Datum: 07.08.04 23:48

Hi!

Damit dein Programm trotz einer großen Belastung weiterhin reagiert, musst du die Methode, die diese große Belastung verursacht, in einem neuen Thread starten:

Private DoItThread As New System.Threading.Thread(AddressOf DoIt) ' Erstellen 
' eines neuen Threads und festlegen der Methode DoIt() als Zielmethode des 
' Threads.
 
Private Sub DoIt() ' Belastende Methode
 
' Hier der Code, der das Programm im Normallfall nicht mehr reagieren lässt.
 
End Sub
DoIt() darf keine Funktion sein!
Der Methode DoIt() dürfen in diesem Fall keine Parameter übergeben werden.

Falls der belastenden Methode irgendwelche Parameter übergeben werden müssen, müssen die Variablen, die als Parameter übergeben werden sollen in der/m aktuellen Klasse/Modul global sein, außer im Falle einer direkten konstanten Wertübergabe, dort braucht man nämlich keine Variablen.

Beispiel:

Public Class DoItClass
 
Private MyParam1$ ' Erstellen der Variable MyParam1 von Typ String
Private MyParam2% ' Erstellen der Variable MyParam2 von Typ Integer/Int32
 
Private DoItThread As New System.Threading.Thread(AddressOf StartDoIt) ' 
' Erstellen eines neuen Threads und festlegen der Methode DoIt() als 
' Zielmethode des Threads.
 
Private Sub StartDoIt() ' Die Methode, die beim Start von DoIt() mit Parametern 
' hilft
DoIt(MyParam1$, MyParam2%) ' Starten der belastenden Methode mit Parametern
End If
 
Private Sub DoIt(ByVal Param1$, ByVal Param2%) ' Belastende Methode
 
' Hier der Code, der das Programm im Normallfall nicht mehr reagieren lässt.
 
End Sub
 
End Class
Die Parametervariablen muss man dann manuell setzen.
Sie werden dann automatisch von der Threadmethode mitgenomen.

Den Thread startest du mit:

DoItThread.Start()
Der Thread wird automatisch nach Ablauf der Methode beendet.

Verständlich?

Sollte ich einen Fehler gemacht oder etwas vergessen haben, bitte melden!


MfG
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Realisierung von Multitreating810Bild07.08.04 08:46
Re: Realisierung von Multitreating581Micke07.08.04 21:01
Re: Realisierung von Multitreating525Bild07.08.04 21:10
Re: Realisierung von Multitreating543Micke07.08.04 21:18
Re: Realisierung von Multitreating591IsoLizer07.08.04 23:48
Re: Realisierung von Multitreating611Bild08.08.04 01:40
Re: Realisierung von Multitreating520Supernova08.08.04 13:34
Re: Realisierung von Multitreating512Bild08.08.04 13:55
Re: Realisierung von Multitreating545UR08.08.04 13:58
Re: Realisierung von Multitreating554Bild08.08.04 16:42

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel