• Viernes 8 de Noviembre de 2024, 20:46

Autor Tema:  Threading???  (Leído 1846 veces)

Almes

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Threading???
« en: Jueves 4 de Octubre de 2007, 17:40 »
0
Hola a todos me gustaria saber si hay alguien q haya utilizado Thread dentro de algún sistema, necesito saber cual es la técnica para utilizar estas hebras mmm quizas alguien pueda explicarme un poquito la funcionalidad instruirme ya q me gustaria implementar este metodo en un sistema q estoy realizando el cual es de descarga de datos y desmora bastante en terminar su ejecución.


Gracias Y Saludos.

Knight Lore

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Threading???
« Respuesta #1 en: Jueves 4 de Octubre de 2007, 18:19 »
0
En principio los threads son simples de usar, pero el tema completo es uno de los mas complejos de la programacion, ya que no solo tendras las multiples tareas sino que tambien tendras que tener presente la sincronizacion de todos los procesos y sucesos para que todo resulte como lo necesitas. Te aconsejo que leas a fondo los manuales de .net acerca de los threads. De todas fomas te pongo un ejemplo simple para que arranques con lo mas basico y que quizas sea suficiente para lo que necesitas hacer.


Código: Text
  1. Imports System.Threading
  2.  
  3. Public Class ThreadTest
  4.  
  5.     Public Sub EjecutarThreads()
  6.  
  7.         'definir el thread 1
  8.         Dim tr1 As New Thread(AddressOf Thread1)
  9.  
  10.         'definir el thread 2
  11.         Dim tr2 As New Thread(AddressOf Thread1)
  12.  
  13.         'Iniciar thread 1
  14.         tr1.Start()
  15.  
  16.         'Iniciar thread 2
  17.         tr2.Start()
  18.  
  19.         MsgBox("Los threads se estan ejecutando")
  20.  
  21.     End Sub
  22.  
  23.  
  24.     Public Sub Thread1()
  25.  
  26.         'Aca va el codigo de uno de los Thread
  27.         Dim i As Integer
  28.         Debug.WriteLine("Ejecutanto Thread 1")
  29.         For n As Integer = 0 To 1000000000
  30.             i = n
  31.             'Esto pone en pausa el thread la cantidad de milisegundos
  32.             'indicada en el parametro.
  33.             'Si el valor es cero, bloquea temporalmente el thread para
  34.             'permitir la ejecucion de otros threads en espera.
  35.             'Se puede obviar pero conviene incorporarlo para no llevar
  36.             'el uso del procesador al 100%
  37.             Thread.CurrentThread.Sleep(0)
  38.         Next
  39.  
  40.         Debug.WriteLine("Thread 1 Terminado")
  41.     End Sub
  42.  
  43.  
  44.     Public Sub Thread2()
  45.  
  46.         'Aca va el codigo de otro de los Thread
  47.         Dim i As Integer
  48.         Debug.WriteLine("Ejecutanto Thread 2")
  49.         For n As Integer = 0 To 1000000000
  50.             i = n
  51.             Thread.CurrentThread.Sleep(0)
  52.         Next
  53.         Debug.WriteLine("Thread 2 Terminado")
  54.     End Sub
  55.  
  56. End Class
  57.  
  58.  

El programa en si no hace nada util salvo un par de bucles :)
pero te servira como punto de partida.

Espero te sea util.

Almes

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Threading???
« Respuesta #2 en: Jueves 4 de Octubre de 2007, 19:36 »
0
Gracias intentare realizarlos en mi sistema y te cuento como me va te pasaste.

Besos

LoboSoft

  • Visitante
Re: Threading???
« Respuesta #3 en: Jueves 4 de Octubre de 2007, 21:26 »
0
wenas compañera de programación
en mi pagina colge un codigo fuente con distintos ejemplos de threads y la manera de controlarlos, ya se que hay poca info por hay rondando, por eso me decline a hacerlo. En el incluyo las colas de espera, como cancelar un proceso, los semaforos ( para limitar las conexiones simultaneas ), etc....
te dejo el link por si te interesa, h t t p : / / u s u a r i o s . l y c o s . e s / x t r e m e c o d e s
Saludos
Atentamente: LNS Evolution

Almes

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Threading???
« Respuesta #4 en: Jueves 4 de Octubre de 2007, 22:38 »
0
Cool lo chekiareeeeee  :)
thanks


LNS Evolution Trate de chekiar  tu link pero no me funciona :blink:

Almes

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Threading???
« Respuesta #5 en: Domingo 7 de Octubre de 2007, 23:41 »
0
No me funciona el linkkkkkk :P puedes mandarmelo otra vez o si alguien tiene algun manual please


Gracias

LoboSoft

  • Visitante
Re: Threading???
« Respuesta #6 en: Lunes 8 de Octubre de 2007, 18:37 »
0
para k funcione tienes que quitar los espacios del link entre letra y letra porque sino no me dejava enviarlo

Almes

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Threading???
« Respuesta #7 en: Martes 9 de Octubre de 2007, 18:33 »
0
Vi tu codigo ta muy cool, mira mi idea es lanzar una descarga de archivos mientras pasa esto mostrar un .gif onda mi idea es q mientras se ejecuten los procesos fuertes la pantalla no se cuelgue y se vea blanca. Como podria hacer eso lanzando el procedimiento en una hebra mmm como hago para que funcionen dos procesos a la misma vez, o quizas me estoy complicando y podria realizar esto de una forma más simple.
Lo otro al revisar tu codigo hay q validar el botón abortar pq se cae.

Saludos q estes muy bien.