Pos no me he rendido con los THREADS

04/01/2006 - 20:47 por Ch0rY | Informe spam
rendirme no es lo mio, cansarme si, pero rendirme no.

Asi q estoy de vuelta con el tema

Si recordais, tenia intencion de hacer unos threads para "operar" con
varios archivos o varias filas de un listview a la vez.

Al principio no fui capaz de crear un simple thread, hoy lo he conseguido y
he sido capaz de crear una clase q lo use.

Pero no se como hacer q se ejecute 4 veces simultaneamente

Este es el proyecto q he creado

En un form, metemos un listview llamado lst_View y cuatro botones
(btn_h1,btn_h2,btn_h3,btn_h4)

Este es el codigo en el form

Imports System.Threading

Public Class Form1
Dim Hilin(3) As Pilla
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Me.Dispose()
End
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim Contador As Byte
Dim lvwItem As ListViewItem
For Contador = 1 To 254
lvwItem = New ListViewItem(Contador.ToString)
lvwItem.SubItems.Add("")
lst_View.Items.Add(lvwItem)
Next
End Sub

Private Sub btn_h1.Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_h1.Click, btn_h2.Click, btn_h3.Click,
btn_h4.Click
Dim Contador As Byte
For Contador = 0 To 4
If IsNothing(Hilin(Contador)) Then
Hilin(Contador) = New Pilla
If Not Hilin(Contador).Iniciado Then
Hilin(Contador).lista = Me.lst_View
Hilin(Contador).Iniciar()
Exit Sub
End If
End If
Next
End Sub
End Class

y esta es la clase que he creado (PILLA)

Imports System.Threading

Public Class Pilla
Delegate Sub Hazlo()
Public ElHilo As Thread = Nothing
Public lista As ListView

Private _Iniciado As Boolean

ReadOnly Property Iniciado() As Boolean
Get
Iniciado = _Iniciado
End Get
End Property

Public Sub Hilo()
Dim lvwItem As ListViewItem
_Iniciado = True
If lista.InvokeRequired Then
Dim Hilo2 As New Hazlo(AddressOf Hilo)
lista.Invoke(Hilo2)
Else
For Each lvwItem In lista.Items
If lvwItem.Checked Then Exit For
lvwItem.Checked = True
Dim Contador As Integer
For Contador = 0 To 65000
Application.DoEvents()
lvwItem.SubItems(1).Text = Format("0.00", Contador).ToString
Next
Next
End If
_Iniciado = False
End Sub

Public Sub Iniciar()
ElHilo = New Thread(New ThreadStart(AddressOf Hilo))
ElHilo.Start()
End Sub

End Class


Me gustaria q lo echaseis un vistazo y si no podeis decirme como hacer lo
que quiero, si me gustaria me dijerais, q os parece, q fallos veis q estoy
cometiendo, y tal y tal...


Gracias de nuevo.

Reconocereis q como cura no tendria precio, tol dia pidiendo :D

Preguntas similare

Leer las respuestas

#11 Ch0rY
23/01/2006 - 20:46 | Informe spam
Vale, pero direccion de correo, no me la reconoce.
Chory
Respuesta Responder a este mensaje
#12 Jesús López
23/01/2006 - 22:16 | Informe spam
Prueba con esta dirección sin el "QUITAESTO"


Respuesta Responder a este mensaje
#13 Ch0rY
24/01/2006 - 13:17 | Informe spam
No me deja, sera por al Fichero?
Respuesta Responder a este mensaje
#14 Ch0rY
24/01/2006 - 13:22 | Informe spam
Como no tiene nada de especial, y solo ocupa 80k, comprimido, lo envio aqui,
ok?

Pero no me riñas mucho he?, hay algo de basurilla debido a las pruebas q hago, y algunas cosas estan ... bueno, ya
lo veras.
Por el momento quiero q haga lo q deseo, luego lo optimizare, y esas cosas.
La he pasao con el AVG y el Trojan Remover, x si las moscas
Muchas gracias x las molestias q te tomas
Chory
Respuesta Responder a este mensaje
#15 Jesús López
24/01/2006 - 15:47 | Informe spam
Pues ya me contarás como leo yo el fichero adjunto :-( ???

Prueba con esta otra dirección:



Nota: solo vale lo que está en minúsculas.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida