vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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 - Ein- und Umsteiger
Re: Ausgabe aus Threads 
Autor: Snoopy
Datum: 14.05.08 14:13

Hier mal ein simples Beispiel, wie aus einer Klasse heraus ein Event aus einem Thread gefeuert wird.

Hier die Klasse:
Imports System.Threading
 
Public Class clsThread
   Private t As Thread
 
   Public Event Aktualisieren(ByVal sender As clsThread, ByVal value As String)
 
   Public Sub New()
      t = New Thread(AddressOf DoThread)
      t.Start()
   End Sub
 
   Public Sub Abort()
      t.Abort()
   End Sub
 
   Public Sub DoThread()
      Try
         ' Endlosschleife mit einer Sekunde Pause und dem Event-Aufruf
         Do While True
            RaiseEvent Aktualisieren(Me, Now.ToString)
            Thread.Sleep(1000)
         Loop
      Catch ex As ThreadAbortException
         Return
      End Try
   End Sub
End Class
Und jetzt die Form (Form1) mit einer ListBox (ListBox1):
Public Class Form1
 
   ''' <summary>
   ''' Klasse mit Ereignisse instanziieren
   ''' </summary>
   Private WithEvents myThreadClass As New clsThread
 
   ''' <summary>
   ''' Hier der gefeuerte Event aus der Klasse mit seinem Delegaten
   ''' </summary>
   Private Delegate Sub DelAktualisieren(ByVal sender As clsThread, ByVal value _
     As String)
 
   Private Sub myThreadClass_Aktualisieren(ByVal sender As clsThread, ByVal _
     value As String) Handles myThreadClass.Aktualisieren
      If Me.InvokeRequired Then
         Me.Invoke(New DelAktualisieren(AddressOf myThreadClass_Aktualisieren), _
           New Object() {sender, value})
      Else
         Me.ListBox1.Items.Add(value)
      End If
   End Sub
 
   ''' <summary>
   ''' Wenn das Programm beendet wird, den Thread abbrechen
   ''' </summary>
   Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
     System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
      myThreadClass.Abort()
   End Sub
End Class
Du solltest aus der Klasse heraus nicht direkt die Form ansprechen. Besser ist es über Properties
oder Events die Daten mit deiner Form auszutauschen.

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ausgabe aus Threads1.091MaxxTc14.05.08 09:36
Re: Ausgabe aus Threads790Snoopy14.05.08 09:41
Re: Ausgabe aus Threads766MaxxTc14.05.08 09:41
Re: Ausgabe aus Threads760MaxxTc14.05.08 10:13
Re: Ausgabe aus Threads989Moderatorralf_oop14.05.08 10:23
Re: Ausgabe aus Threads793MaxxTc14.05.08 10:48
Re: Ausgabe aus Threads1.413Snoopy14.05.08 14:13

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