Usuario: anónimo

Usuarios en línea: 1
Invitados: 1

FAQ

Mensaje

26m
Re: Duda con winapi
U(ruben) 2018-10-22 02:40:36  H

Buenas Salvador,

Lo de los hilos es perfecto. Sencillo y muy útil.

Para este caso lo necesito para descargar registros de una API y lo de la barra de progreso va a ser bastante útil también.

Lo que haré será poner un bool en cada parámetro del WD_COMAND y crearé una función para gestionar todos los hilos según los bool estén a 0 o a 1.

Gracias otra vez ;D

Un saludo

________________________________

De: Cconclase <cconclase-bounces@listas.conclase.net>  en nombre de Salvador Pozo <salvador@conclase.net>

Enviado: domingo, 21 de octubre de 2018 17:06

Para: cconclase@listas.conclase.net

Asunto: Re: [C con Clase] Duda con winapi

El pasado 2018-10-21 12:56:59, ruben escribió:

Hola:

r>  Estoy aprendiendo a usar winapi con el curso de cconclase y es realmente bueno.

Gracias, me alegra saber que te gusta.

r>  Se me a presentado un problema que no tengo claro como gestionarlo. Estoy acostumbrado a programar en consola y cuando quieres hacer un bucle que tarde su tiempo, simplemente hay que esperar a que termine.

r>  El caso es que si activo un bucle con WM_COMAND, la aplicación se cuelga hasta que el bucle finalice.

Las tareas de manipulación de mensajes, el procedimiento de ventana, deberían ejecutarse lo más rápidamente posible, precisamente para evitar que la aplicación se quede congelada durante mucho tiempo sin responder a las acciones del usuario.

Cuando una tarea requiera un tiempo apreciable para completarse se debería asignar a un cuadro de diálogo o a un hilo (thread) paralelo, o a un conjunto de ambas cosas.

Ejemplos de este tipo de tareas son las copias de archivos, descargas desde la red o instalación de aplicaciones.

Ayuda mucho en estos casos mostrar barras de progresos y mensajes que den información para que el usuario sepa que las tareas se están llevando a término con normalidad (o que no, en caso de que haya algún problema).

La respuesta a tu problema son los hilos. Puedes ver una primera aproximación en este enlace:

http://articulos.conclase.net/?tema=juegos&art=threads&pag=000

Artículos con Clase - Usar varios hilos en la programación ...<http://articulos.conclase.net/?tema=juegos&art=threads&pag=000>

articulos.conclase.net

Lo primero que tenemos que tener en cuenta es que un hilo es un recurso. Cada vez que creemos un hilo, el sistema creará un manipulador al que irá asociado el hilo, pero también reservará otros recursos, como una pila, memoria, etc. Es responsabilidad nuestra liberar esos recursos cuando ya no los necesitemos.

Como los hilos pueden compartir memoria con el programa que los ha creado, es relativamente sencillo compartir información entre el procedimiento de ventana y los hilos, de modo que se pueda monitorizar el avance de las tareas realizadas por cada hilo.

Espero que te sirva de ayuda, pregunta de nuevo si necesitas alguna aclaración.

Hasta pronto.

--

Salvador Pozo (Administrador)

mailto:salvador@conclase.net

Blog con Clase: http://blogconclase.wordpress.com

Con Clase: http://conclase.net

_______________________________________________

Lista de correo Cconclase Cconclase@listas.conclase.net

http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_______________________________________________

Lista de correo Cconclase Cconclase@listas.conclase.net

http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ