Visual Basic.NET - Sr

 
Vista:

Sr

Publicado por Ricardo  (1 intervención) el 22/02/2008 16:07:30
Hola a todos:

Espero puedan ayudarme, al correr el siguiente codigo me marca una exception al dar click en el boton, he intentado con varios ejercicio usar hilos y siempre me marca la exception de System.InvalidOperationException....

codigo:

Imports System.Threading

Public Class Form1

Private trd As Thread

Private Sub ThreadTask()

For i As Integer = 1 To 10000
Me.lstProceso.Items.Add("Contador: " & i)
For aux As Integer = 1 To 50000
' retardo
Next
Next
' finalizamos la hebra
trd.Abort()
End Sub

Private Sub btnIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciar.Click
' instanciar la hebra y ponerla en marcha
' en el constructor de la hebra, indicamos
' qué procedimiento deberá ejecutar al ser iniciada
trd = New Thread(AddressOf ThreadTask)
trd.Start()
End Sub
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sr

Publicado por ava (30 intervenciones) el 22/02/2008 20:16:39
Espero este ejemplo te sirva.

Pues para actualizar los controles en hilo UI desde el fondo hilo tomara ventaja de los delgados

Solo ensaya

Public Class Form1
Public Sub UpdatelstProceso(ByVal msg As String)
Me.lstProccess.Items.Add(msg)
End Sub
Private Sub btnIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim bk As New BackgroundWork(Me)
Dim t As New Threading.Thread(AddressOf bk.ThreadTask)
t.Start()
End Sub
End Class Public Class BackgroundWork
Private mForm As Form1
Private Delegate Sub UpdateListboxHandler(ByVal msg As String)
Sub New(ByVal f As Form1)
Me.mForm = f
End Sub
Public Sub ThreadTask()
For i As Integer = 1 To 10000
Dim msg As String = "Counter: " & i
Dim u As New UpdateListboxHandler(AddressOf Me.mForm.updatelstprocess)
Me.mForm.Invoke(u, New Object() {msg})
For aux As Integer = 1 To 50000
Next
Next
End Sub
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar