vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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
Problem mit Abfrage des Status eines Threads 
Autor: Marv82
Datum: 04.12.08 08:58

Guten Tag,

ich habe eine Serveranwendung die in einem Thread auf eingehende Verbindungen wartet. Der Thread wird beim Laden der Start-Form gestartet.

Dim MSGS As System.Threading.ThreadStart
MSGS = New System.Threading.ThreadStart(AddressOf GetMessages)
Dim Messages As New System.Threading.Thread(MSGS)
......
Messages.start
.......
Thread..

Public Sub GetMessages()
 
        Dim bytes() As Byte = New [Byte](4048) {}
        Dim receivedData As String
        Dim Prozess As Process()
        Dim EndProz As Process
        Dim flag(1) As Boolean
 
        Dim ipHostInfo As System.Net.IPHostEntry = System.Net.Dns.Resolve( _
          System.Net.Dns.GetHostName())
        Dim ipAdress As System.Net.IPAddress = ipHostInfo.AddressList(0)
        Dim localEndPoint As New System.Net.IPEndPoint(ipAdress, 4060)
        Dim s As New Socket(System.Net.Sockets.AddressFamily.InterNetwork, _
          SocketType.Stream, ProtocolType.IP)
 
        Try    
                s.Bind(localEndPoint)
                s.Listen(30)
.... 
        End Try
End Sub
Nun will ich unter einem Timer.Tick Event den Status des Threads abfragen, und falls dieser beendet ist neu starten. Über..

If Messages.IsAlive = False then Messages.start
Problem ist, dass..

Messages.IsAlive mit immer False zurückgibt, auch wenn der Thread noch läuft. Wahrscheinlich weil der Socket den Thread blockiert, da er auf eingehende Daten wartet.

Wenn ich den Status über Messages.Threadstate abfrage bekomme ich 'Unstarted' als Status zurückgegeben, was aber definitiv falsch ist, da ich der angeblich nicht gestarteten Serveranwendung Daten schicken kann. Ich hatte den Threadstart auch schon mal testweise in das Timer.Tick Event verschoben aber der Effekt war der gleiche.

Nun die Frage, wieso bekomme ich den Status 'Unstarted' oder wie könnte ich sonst noch checken ob der Thread läuft. Ich könnte zwar prinzipiell den Thread neustarten und die Exception abfangen - Port schon belegt - aber das erscheint mir irgendwie unsauber ;)
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit Abfrage des Status eines Threads1.681Marv8204.12.08 08:58
Re: Problem mit Abfrage des Status eines Threads737ModeratorDaveS04.12.08 09:37

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