Visual Basic - Manejo de hilos

Life is soft - evento anual de software empresarial
 
Vista:

Manejo de hilos

Publicado por Guillermo Sanchez (9 intervenciones) el 20/02/2006 16:49:54
El caso en que se me presenta la necesidad de usar hilos es muy simple..

Tengo una funcion que demora 10 seg. en ejecutarse..
Por otro lado tengo un timer que lo uso para actualizar un reloj que muestro por pantalla..

Pero cuando llamo a la funcion que demora 10 seg. el reloj deja de actualizarce...

Lei en varios lados que no es seguro hacer el manejo de hilos en VB6, pero lo necesito y tomare el riesgo..

Saludos
Guille
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:Manejo de hilos

Publicado por Guillermo Sanchez (9 intervenciones) el 21/02/2006 13:35:02
Vos sos medio macaco, para que lees los foros y respondes si haces estas respuestas... Se ve que estas muy al pedo..
No arruines la buena utilidad que tienen los foros.
Y sis sos tan vivo o viva, porque jugas de anonimo..
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

RE:Manejo de hilos

Publicado por Cecilia Colalongo (3116 intervenciones) el 21/02/2006 15:11:10
Fijate en:

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=27481&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=34927&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=36997&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=24747&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=24695&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=63601&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=31809&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=14479&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=42880&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=58350&lngWId=1
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

RE:Manejo de hilos

Publicado por Andrés (2 intervenciones) el 04/01/2007 13:20:09
Aquí te adjunto un ejemplo que te servirá :

MODULO.BAS :

'Estructura necesaria para la llamada a la función
'CreateThread. En C se puede dar un valor NULL para
'que tome valores por defecto. En VB hay que pasar
'la estructura completa aunque sea con valores por
'defecto para que la cosa chute.

Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Dim SecStruc As SECURITY_ATTRIBUTES

Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Declare Sub ExitThread Lib "kernel32" (ByVal dwExitCode As Long)

Sub CrearThread()

' Damos valores a los campos de la estructura
' SECURITY_ATTRIBUTES
' Adjunto la explicación extraída del help del
' API de Microsoft C++.

'Especifica el largo en bytes de esta estructura
'El valor será establecido al tamaño de la estructura SECURITY_ATTRIBUTES
SecStruc.nLength = 12


SecStruc.lpSecurityDescriptor = 0
' Points to a security descriptor for the
' object that controls the sharing of it.
' If NULL is specified for this member,
' the object may be assigned the default
' security descriptor of the calling process.

SecStruc.bInheritHandle = True
' Specifies whether the returned handle is
' inherited when a new process is created.
' If this member is TRUE, the new process
' inherits the handle.

' Por fín creamos las hebras. Nótese que en
' el tercer parámetro le especificamos el
' puntero a la función o procedimiento a
' ejecutar al arrancar la hebra (usamos el
' operador AddressOf propio del VB5).
' En el cuarto parámetro se le especifica el
' parámetro que recibirá la función o el
' procedimiento.
' Por cierto, he estado probando con parámetros
' tipo string y no he conseguido que funcione
' bien. Curiosamente la primera hebra no pasa
' correctamente el parámetro, y en cambio la
' segunda sí. Si alguien encuentra una explicación
' le agradeceré que me la dé, aunque seguiré
' investigando por mi cuenta.
param1& = 1
m_hThread1& = CreateThread(SecStruc, 0, AddressOf Hilo1, ByVal param1&, 0, dwThreadId1&)
param2& = 2
m_hThread2& = CreateThread(SecStruc, 0, AddressOf Hilo2, ByVal param2&, 0, dwThreadId2&)
param2& = 3
m_hThread2& = CreateThread(SecStruc, 0, AddressOf Hilo3, ByVal param2&, 0, dwThreadId2&)
End Sub
Sub Hilo1()
Static ContadorA As Integer
ContadorA = ContadorA + 1
Form1.Text1.Text = ContadorA
End Sub
Sub Hilo2()
Static ContadorB As Integer
ContadorB = ContadorB + 1
Form1.Text2.Text = ContadorB
End Sub
Sub Hilo3()
Static ContadorC As Integer
ContadorC = ContadorC + 1
Form1.Text3.Text = ContadorC
End Sub

'Call ExitThread(ByVal 0)

FORMULARIO :

Private Sub Form_Load()
Call CrearThread
Timer1.Enabled = True
Timer2.Enabled = True
Timer3.Enabled = True
End Sub

Private Sub Timer1_Timer()
Call Hilo1
End Sub

Private Sub Timer2_Timer()
Call Hilo2
End Sub

Private Sub Timer3_Timer()
Call Hilo3
End Sub
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

RE:Manejo de hilos

Publicado por elio (1 intervención) el 12/05/2010 20:00:43
Check that!!!
http://www.freevbcode.com/ShowCode.asp?ID=1287#Introduction
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