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
Leer las respuestas