Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/11/2008, 10:19
programadorvip
 
Fecha de Ingreso: agosto-2006
Ubicación: en lima peru
Mensajes: 184
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ejemplo ThreadPool

Bueno no sé si te servira esto: pero es un ejemplo sencillo del uso de Threads:




Imports System.IO
Imports System.Threading

Public Class frmArchivo
Private objHiloTotal As Thread
Private objHiloLeer As Thread
Private tl As Integer

Private Sub DeshabilitarSeguridadHilos(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
pbrArchivo.Visible = False
CheckForIllegalCrossThreadCalls = False
End Sub

Private Sub MostrarSaludo(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaludo.Click
MessageBox.Show("Hola", "Saludo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Sub

Private Sub MostrarDialogoAbrir(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbrir.Click
With ofdArchivo
.Title = "Abrir un Archivo de texto"
.Filter = "Archivos de texto|*.txt"
If .ShowDialog = Windows.Forms.DialogResult.OK Then
txtArchivo.Text = .FileName
Me.Text = Path.GetFileName(.FileName)
End If
End With
End Sub

Private Sub TotalLineasArchivo()
tl = 0
Using fs As New FileStream(txtArchivo.Text, FileMode.Open, FileAccess.Read)
Using sr As New StreamReader(fs)
Do While Not sr.EndOfStream
sr.ReadLine()
tl = tl + 1
Loop
End Using
End Using
End Sub

Private Sub LeerContenidoArchivo()
Dim f As Integer = tl \ 100
Dim c As Integer = 0
pbrArchivo.Visible = True
lstArchivo.Items.Clear()
Using fs As New FileStream(txtArchivo.Text, FileMode.Open, FileAccess.Read)
Using sr As New StreamReader(fs)
Do While Not sr.EndOfStream
If c Mod f = 0 Then
If pbrArchivo.Value < 100 Then
pbrArchivo.Value += 1
Else
pbrArchivo.Value = 0
pbrArchivo.Visible = False
End If
End If
c += 1
lstArchivo.Items.Add(sr.ReadLine())
Loop
End Using
End Using
End Sub

Private Sub LeerArchivo(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLeer.Click
objHiloTotal = New Thread(AddressOf TotalLineasArchivo)
objHiloTotal.Start()
objHiloTotal.Join()
objHiloLeer = New Thread(AddressOf LeerContenidoArchivo)
objHiloLeer.Start()
End Sub

End Class