vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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
Objekt nach Thread-Ablauf behalten 
Autor: IsoLizer
Datum: 08.08.04 22:53

Hallo!

Ich schreibe eine Anwendung, das zum Empfang von Daten Sockets verwendet.
Dabei bin ich auf ein Problem gestoßen, dass ich nicht lösen kann ...

Ich empfange Daten synchron mit einem Socket folgendermaßen:

        Private RemClient As Socket
 
        Private MySocket As New Socket(AddressFamily.InterNetwork, _
          SocketType.Stream, ProtocolType.Tcp)
        Dim t As New Threading.Thread(AddressOf DoAccept)
 
        Public Sub Bind(ByVal IP$, ByVal Port%)
            MySocket.Bind(New IPEndPoint(IPAddress.Parse(IP$), Port%))
            MySocket.Listen(5)
            t.Start()
        End Sub
 
        Private Sub DoAccept()
            Dim buf(2047) As Byte
 
            While True
                buf.Clear(buf, 0, buf.Length - 1)
                If RemClient Is Nothing Then
                    RemClient = MySocket.Accept()
                End If
 
                If RemClient.Connected = True Then
                    RemClient.Receive(buf)
 
                    If buf.Length > 0 Then
                        PARSER(UTF8.GetString(buf))
                    End If
                End If
 
            End While
        End Sub
Die Verbindung und Empfang geht ohne Probleme.

So ....

Nun übergebe ich die empfangenen Daten als String an einen von mir erstellten Text-Parser. Der sieht so aus:

<STAThread()> Public Sub PARSER(ByVal Query$)
 
        ' Hab den Parsercode ausgeschnitten, um sich auf das Wichtigste zu 
        ' konzentrieren.
 
            Dim Data& ' Dieser Variable werden bestimmte Daten nach dem Parsen 
            ' von Query$ zugewiesen
 
            Dim DWin As Form = New DataWnd(Data&) ' DataWnd ist eine von mir 
            ' manipulierte Fensterklasse (Form)
 
            DWin.Show() '  << Und hier ist das Problem
 
    End Sub
Das Fenster DWin erscheint für eine halbe Sekunde und verschwindet sofort.
Ich vermute, dass das so ist, weil der Parser in der Socket-Empfangsschleife aufgerufen wird.
Sobald die Schleife einmal durchgelaufen ist, werden die im Durchlauf erstellten Variablen automatisch wieder entfernt.

Kann mir jemand sagen, wie man nach einmaligem Durchlauf der Schleife das Objekt behalten kann, so dass das Fenster offen bleibt, bis man es schließt?

Danke!

MfG
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Objekt nach Thread-Ablauf behalten585IsoLizer08.08.04 22:53
Re: Objekt nach Thread-Ablauf behalten310Urot08.08.04 23:32
Re: Objekt nach Thread-Ablauf behalten321Urot08.08.04 23:35
Re: Objekt nach Thread-Ablauf behalten299IsoLizer09.08.04 11:02
Re: Objekt nach Thread-Ablauf behalten297Urot09.08.04 15:11
Re: Objekt nach Thread-Ablauf behalten284IsoLizer09.08.04 20:14
Re: Objekt nach Thread-Ablauf behalten290IsoLizer09.08.04 21:05

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