Ver Mensaje Individual
  #5  
Antiguo 28-01-2006
Seba.F1 Seba.F1 is offline
Registrado
 
Registrado: nov 2004
Ubicación: ER - Argentina
Posts: 7
Reputación: 0
Seba.F1 Va por buen camino
aclaración sobre la consulta

No entiendo demasiado de hilos pero siento que tu código está muy enredado.

hola roman como andás agradezco mucho la respuesta.
te aclaro algunas cositas porque no fui muy claro.

¿Para qué pones al WaitForSingleObject dentro de un while? En principio, no se pasará de esa línea hasta que no se cumpla el tiempo especificado y si no quieres que termine después de ese tiempo pones INFINITE como timeout y sólo terminará hasta que se cumpla la condición (que termine la otra aplicación)

el WaitForSingleObject lo puse para que espere un ratito y se fije en la cola de mensajes a ver cuando termina la ejecución de la aplicacion cuando encuentra la finalización sale del while.

Y así mismo, no entiendo para qué usas un repeat en el método execute. Si el WaitForSingleObject esta en INFINITE, el método Execute no terminará hasta que no acabe la otra aplicación.

el repeat lo utilizo como pooling para ejecutar las otras tareas, hasta que el formulario F_Balanza dice que termine, ya que los camiones están durante algun tiempo en la balanza y se les agrega o saca granos para llegar a los kg exactos con los que pueden usar las rutas.

Por otra parte no estoy seguro de si realmente es necesario usar un thread aparte. Cuando uses la balanza podrías poner algo como:

Código Delphi [-]
EjecutarBalanza;
 
DeleteFile('archivo.txt');
 
repeat
Application.ProcessMessages;
until FileExists('balanza.txt') or Application.Terminated;
 
ShowMessage('Ya terminó');

esta version la estoy probando.
si se les ocurre algo nuevo lo agradecere mucho.
un saludo a todos.

// Saludos
Responder Con Cita