Server geht als KonsolenAnwendung, aber nicht als Form!?

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von haiyyu.

    Server geht als KonsolenAnwendung, aber nicht als Form!?

    Hey Leute, ich hab den Code von hier, um einen Multi-Server zu programmieren. Ich hab den Code in eine Windows.Forms anwendung umgeschrieben, aber wenn ich das ganze starte, hängt es sich auf. Warum geht es nicht/was ist an dem Code mit einer Form inkompatibel??
    MfG,
    Peter
    du kannst den Server schon zu einer Forms anwendung machen, das Problem ist, das der Serverthread in einer Art endloschleife wartet bis jemand Connectet. Das kannst du auch in einem zweiten Thread erledigen, musst halt nur den Code anpassen. Wurd glaube ich auch hier im Forum schon ein paar mal angesprochen..

    lg flipez

    Flipez schrieb:

    du kannst den Server schon zu einer Forms anwendung machen, das Problem ist, das der Serverthread in einer Art endloschleife wartet bis jemand Connectet. Das kannst du auch in einem zweiten Thread erledigen, musst halt nur den Code anpassen. Wurd glaube ich auch hier im Forum schon ein paar mal angesprochen..

    lg flipez

    also das problem ist, dass sich der Server wegen der endlosschleife aufhängt?
    Das ist normal so. Der Server macht schon das, was er soll. Jedoch friert er das GUI ein, weil er den Thread, in dem er laeuft, auslastet.
    Eine Loesunf waere die Verwendung von mehreren Threads.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private EinThread As New System.Threading.Thread(AddressOf EinServerSub)
    3. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    4. EinThread.Start()
    5. End Sub
    6. Private Sub EinServerSub()
    7. ' Server-Zeug ...
    8. End Sub
    9. End Class
    In diesem Beispiel wird EinServerSub in einem separaten Thread aufgerufen und blockiert so den GUI-Thread nicht.

    Myrax schrieb:

    Er sollte sich noch eben ein bisschen mit Delegaten und son Zeug beschäftigen, damit nicht seine nächste Frage ist, wie man auf Steuerelemente in einem anderen Thread zugreift und irgend ein Depp diesen HurrDurr-AllowCrossirgendwas vorschlägt.

    Hab ich jetzt mit einem Timer gemacht, der die Steuerelemente aktualisiert :D

    haiyyu schrieb:



    Public Class Form1

    Private EinThread As New System.Threading.Thread(AddressOf EinServerSub)

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    EinThread.Start()
    End Sub

    Private Sub EinServerSub()
    ' Server-Zeug ...
    End Sub

    End Class



    In diesem Beispiel wird EinServerSub in einem separaten Thread aufgerufen und blockiert so den GUI-Thread nicht.


    Danke! funktioniert :DD
    How about:

    VB.NET-Quellcode

    1. Control.Invoke(Sub() Control.Text = "Hi")
    Anonyme Methoden machen das Ganze wirklich extrem einfach.