Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema con i thread

  1. #1

    problema con i thread

    Salve,

    Ho un problema con i thread:

    ho eseguito questo piccolo esempio:
    codice:
        Private Sub bottone1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bottoneConnetti.Click
            Try
                'Declare a Thread and Assign it to a Methord Hi 
                Dim t As New Thread(AddressOf tr1)
                'Declare Another Thread and assign it to Bye
                Dim b As New Thread(AddressOf tr2)
    
                'Set the priority level for each thread
                t.Priority = ThreadPriority.Normal
                b.Priority = ThreadPriority.Lowest
    
                'Start the thread execution
                t.Start()
                b.Start()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub
    
        Public Sub tr1()
    
            Do While True
                txtBox1.Text += "prova1"
            Loop
    
    
        End Sub
    
        Public Sub tr2()
            Do While True
                txtBox2.Text += "prova2"
            Loop
        End Sub

    Mi restituisce come errore "Cross-thread operation not valid: Control 'txtBox1 accessed from a thread other than the thread it was created on."

    Come mai?
    Come posso risolvere?

    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  2. #2
    Si tratta di un noto problema di operazione cross-thread. Non puoi modificare il valore di un controllo (quindi che si trova nel thread principale dell'applicazione) da un altro thread. Di soluzioni ne esistono tante, quella più semplice è l'utilizzo di un delegato, leggi qua

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  3. #3

  4. #4
    codice:
    Altra spiegazione seguita da rissa
    ...ve le siete date di brutto "a colpi di codice"

    Cmq grazie ad entrambi chipdb e a MItaly per le interessantissime e utili guide...

    Alla prossima
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  5. #5
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.