Foros del Web » Programación para mayores de 30 ;) » .NET »

se puede threads que regresan valores?

Estas en el tema de se puede threads que regresan valores? en el foro de .NET en Foros del Web. hola, ultimamente he estado programando con hilos pero siempre avian sido funciones que no regresaban valores, ahora me tope con la necesidad de regresar un ...
  #1 (permalink)  
Antiguo 17/10/2009, 13:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
se puede threads que regresan valores?

hola, ultimamente he estado programando con hilos pero siempre avian sido funciones que no regresaban valores, ahora me tope con la necesidad de regresar un valor, alguien sabe si se puede? (uso vb.net pero la ayuda en cualquier lenguaje me sirve)

mi sintaxis es mas o menos asi:

dim aNum as integer=5
myThread = New Threading.Thread(AddressOf myFunction)
myThread.Start(aNum)
myThread.join() 'espera a que termine el hilo
aNum+=1 'despues de esto deveria valer 9

----

Private Shared Function myFunction(ByVal num As integer) As integer
num+=3
return num
End Function

trate de ponerle ByRef pero me marca error :(
  #2 (permalink)  
Antiguo 17/10/2009, 17:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: se puede threads que regresan valores?

Para que un proceso en un thread devuelva valores, el objeto donde se almacene debe permanecer más allá de la existencia del thread (recordar programación básica de subprocesos).
Esto significa que, en tu caso, aNum no puede ser creada dentro del proceso, sino fuera porque toda variable creada en un subproceso nace y muere en él, la variable aNum debe ser global de la aplicación, o variable de la clase.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.