Threads en Visual Basic

Hola, ante todo gracias por leer mi problema. Estoy programando en Visual Basic y me gustaría que algunas de las funciones fuesen multihiladas por ejemplo para actualizar segundo a segundo el tiempo que estoy esperando una conexión y cosas semejantes.
He intentado utilizar la funciones "CreateThread","TerminateThread",... De Kernel32.dll pero, aunque compila la aplicación, al llamar a las funciones como hilos ("ManHilo = CreateThread(aux, aux, AddressOf AbrirConexion, aux, 0, HiloID)") me aparece una pantalla que me dice error de memoria, etc. Si alguien lo sabe también me gustaría saber si 2 formularios pueden ejecutarse simultáneamente ( en mi programa el formulario que tiene el foco se ejecuta y el otro espera ). Muchas Gracias.
1

1 Respuesta

3.175 pts. Soy Ingeniero Civil Informático egresado de la...
Primero te recomiendo que pruebes usar Timers para verificar la llegada de la conexión. Necesitaría más información de la conexión de que hablas.
Para que pueda funcionar el otro formulario tendrías que ejecutar "DoEvents" cada cierto tiempo.
Por otro lado n la biblioteca de MSDN o la ayuda que trae Visual Basic, podrías leer lo que corresponde con "Scalability and Multithreading". Según esto, VB tiene tres tipos de manejo de multithreading: una hebra, pool de hebras o una hebra por objeto. El primer caso es el que se usa normalmente cuando no deseas programar multihebrado. El segundo caso es el que más se recomienda, cuando tú sabes de antemano cuántas hebras podrías llegar a tener, ya que hay un límite. En el tercer caso, cada vez que creas un objeto se le asigna una hebra nueva para correr. Este ultimo caso es muy delicado, porque si no tienes control de las hebras que vas creando, la máquina podría quedar sin memoria o degradar su rendimiento.
Ojalá algo de esto te sirva.
Gracias por contestar a mi pregunta, la verdad es que me ha venido muy bien ( lo de los timers y doevents ya lo usaba, pero lo de MSDN me ha venido muy bien). Gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas