FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Una de Sincronismo
Buenas a Todos....
Mi Pregunta es la siguiente: Tengo un Proceso en una aplicación, k se ejecuta cuando se produce una entrada externa + ó - 8 veces por segundo (cuando hay mucha carga de trabajo), mi intención es parar ese proceso y despues reactivarlo sin k se pare el programa,..... me explico mejor.... Tengo un proceso se ejecuta y cuando llega a una determinada línea si se produce una serie de condiciones kiero k ese proceso se me pare, pero otro proceso k viene por detrás ejecutando el mismo codigo siga su procesamiento e incluso adelantar al anterior... Ejemplo: Procedure Tratamiento_Dato(.....); Begin ... Proceso 1 // por aki va el proceso 1 ... ... Proceso 2 //Estan ejecutando el msmo proceso ... End; yo lo k kiero es en un momento dado es parar (un retraso) el proceso 2 pero k el resto de procesos se sigan ejecutando.... Es un problema de concurrencia..... (Sincronismo).... Muchas Gracias por Vuestra Colaboración |
#2
|
|||
|
|||
pregunta de examen
vamos a ver. si todos los procesos comparten una variable, entonces hablamos de problemas de concurrencia. hay que evitar que dos procesos modifiquen al mismo tiempo dicha variable. pero si no modifican, ninguna variable, sino que simplemente ejecutan uncodigo, esto es , no comparten ningun recurso, yo usaria semaforos, pero ten en cuenta que si paras un procceso con la orden Wait ( es de C++, no se si existe algo parecido en delplhi ), dicho proceso solo podra ser reactivado por otro proceso . el mismo nunca se puede reactivar. deberias crear un proceso padre, que controle las variables que ocasionan la detencion de los procesos hijos. dicho proceso es el encargado de detener y despertar a los procesos. espero haberte sido de ayuda.
|
#3
|
||||
|
||||
Antes de eso... como no lo indicas explicitamente, pues tu programa debiera ser multihilos...
Si no lo es aún, podes ver un ejemplo en la carpeta $delphi\Demos\Threads, y leer en la ayuda sobre TThread. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
Hola Primeramente
Cita:
Código:
TMiHilo=class(TThread) protected procedure Execute; override; end; . . . procedure TMiHilo.Execute; begin . . . end; Cita:
En todo caso seria mejor que revises la demo de Hilos que trae el delphi Suerte
__________________
La practica y solo la practica hace al maestro |
#5
|
|||
|
|||
Continuando con el sincronismo...
Lo k realmente me haria falta es parar un proceso durante un tiempo determinado....
Me gustaría poder parar un proceso 1/2 segundo....., pero no el programa en ejecución (sleep lo he probado y para el programa entero y no kiero eso) Gracias a todos por vuestro interes.... |
#6
|
||||
|
||||
si ya es multihilos... podes suspender el hilo, con lo que su ejecución queda pausada. Por supuesto debe haber otro hilo que luego haga un resume...
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|