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-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Aktive Threads verschiedener Instanzen/Klassen anzeigen lassen (z.B. in Lisbox) 
Autor: Bibobernie
Datum: 21.10.12 15:47

Hallo

In meinem Programm verwende ich Threads welche von verschiedenen Geräten Daten über serielle Schnittstellen abzufragen. Das funktioniert super. Auch das starten und stoppen eines einzelnen Threads gelingt gut. Nun wollt ich mir aber gern alle aktiven Threads anzeigen lassen (z.B. in einer Listbox). Zum einen aus Neugier, zum anderen als Kontrolle ob auch wirklich alle Threads laufen.

Hier aber erst einmal ein Beispiel wie ich die Threads prinzipiell erzeuge:

Basisklasse:

Public MustInherit Class Basis
 
'Konstruktoren, Code usw. 
 
    Private Read_Thread As Thread
 
    ''' <summary>
    ''' Diese Sub dient dazu separate Threads zu starten welche mittels Polling 
    ' den seriellen Port überwachen.
    ''' </summary>
    ''' <remarks></remarks>
    Friend Sub Starte_Überwachung()
 
        If Not Read_Thread Is Nothing Then
            If Read_Thread.IsAlive Then Exit Sub 'Nur einen Thread zulassen
        End If
 
        Read_Thread = New Thread(Sub() ReadSerialPort())
        With Read_Thread
            .IsBackground = True
            .Priority = ThreadPriority.BelowNormal
            .Name = _bezeichnung & " Lesethread"
            .Start()
        End With
 
    End Sub
 
    ''' <summary>
    ''' Beenden des Lesethreads.
    ''' </summary>
    ''' <remarks></remarks>
    Friend Sub Beende_Überwachung()
 
        Read_Thread.Abort()
 
    End Sub
 
    ''' <summary>
    ''' Methode zur Überwachung der Ports. 
    ''' </summary>
    ''' <remarks></remarks>
    Friend MustOverride Sub ReadSerialPort()
 
End Class
Genutzt wird das ganze in einer Child-Klasse (hier mal Gerät_A) über die Methode ReadSerialPort:

Public Class Gerät_A
Inherits Basis
 
'Konstruktoren, Code usw. 
 
    Friend Overrides Sub ReadSerialPort()
        Try
            Do While True
 
                Read_AllChannels()
 
            Loop
 
        Catch ex As ThreadInterruptedException
            Fehlerbehandlung(Fehlercodes.Thread_Interrupt, ex.Message)
        Catch ex As ThreadAbortException
            Fehlerbehandlung(Fehlercodes.Thread_Abbruch, ex.Message)
        Catch ex As Exception
            Fehlerbehandlung(Fehlercodes.Unbekannter_Fehler, ex.Message)
        End Try
 
    End Sub
 
End Class
Bisher nutzen drei verschiedene Child-Klassen diese Methode um über einen Port zu Kommunizieren. In meinem Programm erzeuge ich mir dann die jeweiligen Objekte und nutze die Threads darin. Wie ich nun aber die Threads anzeigen lassen kann ist mir (noch) völlig unklar.

Eventuell hat jemand ja nen konkreten Tipp für mich. Ach ja, und falls was gravierend falsch an dem obigen Code sein sollte bitte ich um hinweise. Ich bin ja immer am lernen;).

Ahnungsloser ahnungsloser...

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Aktive Threads verschiedener Instanzen/Klassen anzeigen lass...1.560Bibobernie21.10.12 15:47
Re: Aktive Threads verschiedener Instanzen/Klassen anzeigen ...830Micke23.10.12 15:48
Re: Aktive Threads verschiedener Instanzen/Klassen anzeigen ...831Bibobernie23.10.12 16:33
Re: Aktive Threads verschiedener Instanzen/Klassen anzeigen ...824ModeratorDaveS23.10.12 17:00
Re: Aktive Threads verschiedener Instanzen/Klassen anzeigen ...833Bibobernie23.10.12 17:17
Re: Aktive Threads verschiedener Instanzen/Klassen anzeigen ...849keco23.10.12 17:50

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