Ver Mensaje Individual
  #3  
Antiguo 03-08-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
AgustinOrtu está bastante bien encaminado en las cosas que te comenta.
Yo te recomendaría que antes de ponerte a codificar, revisaras o leyeras algo de documentación sobre hilos, ya que son muy potantes, pero hay que usarlos adecuadamente, para que no te den problemas.

Algunas cosas de las que aparecen en el hilo me hace pensar que estás probando sin tener claro lo que debes hacer, de ahí mi recomendación anterior.

(1) Básico usar sincronizacíon. Algutín te lo ha explicado. Revisa el método Syncronize y entiende para qué sirve. No puedes hacer esto dentro del hilo.
Código Delphi [-]
FrmMain.LabelContador2.repaint;

(2) La idea de un hilo, es justamente que tu programa lanza el hilo y la ejecución continua. Por eso podemos ejecutar varias tareas de forma simultánea, porque el programa no se queda bloqueado esperando que una tarea termine.
Por lo tanto el siguiente código no tiene sentido:

Código Delphi [-]
  hilo:= TMyThread.create(true, IntToStr(canthilos));  
  hilo.Execute;        (1)
  hilo.Terminate;
  FreeAndNil(hilo);

Creas el hilo, lo pones en marcha es inmediatamente después lo destruyes.
Creo que piensas que tu código se va a detener en el punto (1) hasta que el hilo acabe. Y justamente lo que queremos y conseguimos con un hilo, es que la ejecución no se detenga en ese punto. La aplicación pone en marcha el hilo y continua.
Por lo tanto inmediatamente después de crearlo y ejecutarlo el programa continua con el resto de sentencias...

¿Cómo sabe la aplicación que el hilo ha acabado? Pues creo que Agustín también te ha dado la pista. Posees un evento OnTerminate.

Lo dicho. Te recomiendo que dediques un rato a leer sobre el tema y realices algunas pruebas sencillas.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita