Oppure

Loading
05/08/10 21:12
mb72
volevo creare un semplice thread:
una form con un pulsante ed una textbox.
nella form.load faccio partire il thread che deve in continuazione scrivere nella text box una volta aloha ed una volta ciaociao.....
il problema e' che viene generato l'errore in esecuzione Operazione cross-thread non valida: è stato eseguito l'accesso al controllo 'TextBox1' da un thread diverso da quello da cui è stata eseguita la creazione.

questo e' il codice sorgente che ho scritto.dove ho sbagliato????

Imports System.Threading


Public Class Form1
Private mautread As Thread
Public flag As Integer = 0


Private Sub MioThread()

Do
If flag = 0 Then
TextBox1.Text = "aloha"

flag = 1
ElseIf flag = 1 Then
TextBox1.Text = "ciaociao"
flag = 0
End If

Thread.Sleep(100)

Loop

End Sub

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

mautread = New Thread(AddressOf MioThread)
mautread.IsBackground = True
mautread.Start()


End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MsgBox("premuto pulsante !!!!!!!";)
End Sub

End Class
aaa
05/08/10 21:19
walker93
l'errore è causato dal fatto che non puoi modificare un componente grafico presente sulla form da un thread diverso da quello che ha generato tale componente.

ho visto il tuo codice e ti sucggerisco di usare un timer di interval 100 al posto di un thread separato che tra l'altro stoppi per 100 millisecondi
aaa
05/08/10 21:31
mb72
si, ho messo sleep 100 al posto di 1000.....

Si, al posto del thread potevo usare un timer; quindi se volessi invece cambiare le propieta' grafiche di un oggetto, come avrei potuto farlo con un thread???
aaa
05/08/10 21:55
walker93
aaa