kostenloser Webspace werbefrei: lima-city


Multithreading in VB.Net

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    zet

    zet hat kostenlosen Webspace.

    Hi Leute,

    Ich bastle grade an einem Programm das mir unteranderem aus einer Textbox was vorliest (so ähnlich wie der blablamaker falls ihr den kennt). Funktioniert auch super nur während das Programm \"liest\" hängt alles. Man kann keinen Button mehr drücken usw. Sowas dachte ich mir kann man ja leicht mit Multithrating lösen. Einfach die Sprachausgabe in nem eigenen threat starten. Aber komischerweise hängt dann immer noch alles. Ich hab das so gemacht dass man auf einen button klickt, dann startet der Threat der eigentlich nur \"voice.speak(was auch immer)\" macht. Aber trotzdem hängt alles, kann mir da jmd helfen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m******s

    So wie du das darstellst - nein. Denn wenn du das in einen eigenen Thread ausgelagert hast, dürfte die GUI nicht hängen.
    Also poste deinen Code, zumindest den Teil, der sich mit den Threads befasst, sonst haben wir doch kein Plan, was da schief geht... :slant:
  4. Autor dieses Themas

    zet

    zet hat kostenlosen Webspace.

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles       Button2.Click
            Dim t As Thread
            t = New Thread(AddressOf Me.read)
            t.Start()
        End Sub
    
        Private Sub read()
            say(TextBox1.Text)
        End Sub
    
       \'Das hier ist dann in nem Modul
    
    #Region \"Declarations\"
        Public WithEvents vox As New SpVoice
    #End Region
    
       Public Function say(ByVal text As String)
            vox.Speak(text)
            Return 1
        End Function


    Das ist der eigentlich relevante teil des Codes, danke schonmal für die schnelle antwort ;)
  5. Hallo!

    Obwohl eigentlich alles falsch ist, sollte dein Code trotzdem soweit funktionieren.

    Ich denke mal das nicht nur dein Fenster nicht mehr reagiert, sonder das komplette Windows nicht?

    Wo hast du die Klasse "SpVoice" her?



    Gruß

    Silver
  6. Bevor du den Thread startest solltest du vlt. erst einmal angeben:

    Dim t As Thread
         t = New Thread(AddressOf Me.read)
         t.IsBackground = True '<-- Dadurch läuft der Thread im Hintergrund
         t.Start()
  7. Mach mal vor dem Starten des Programms den Taskmanager auf.
    Dort siehst du dann die Systemauslastung deines Programms nach dem klicken deines Startbuttons.
    Geht die Systemleistung auf 100%?

    Vielleicht hat die Klasse "SpVoice" ja einen Bug?

    Zum testen kannst du ja mal das Vorlesen auskommentieren und nur ein MEldung anzeigen.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!