Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
New signal
|
New signal {( descripcion )} -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
descripcion | Texto |
![]() |
Descripción para la señal | |||||
Resultado | Objeto |
![]() |
Objeto nativo encapsulando la señal | |||||
El comando New signal crea un objeto señal.
Una señal es un objeto compartido que se puede pasar como parámetro de un worker o proceso a otro, de modo que:
Opcionalmente, puede pasar en el parámetro descripcion un texto personalizado que describe la señal. Este texto también se puede definir después de la creación de la señal.
Como el objeto señal es un objeto compartido (ver Objetos y colecciones compartidos), también se puede utilizar para mantener las propiedades del usuario, incluida la propiedad [#title id="9602"/], llamando la estructura Use...End use.
Valor devuelto
El objeto señal devuelto contiene las siguientes propiedades y métodos:
Propiedad | Tipo | Descripción |
signal.signaled | Booleano | (propiedad de solo lectura) false en la creación de la señal. Se convierte en true cuando se llama al método signal.trigger( ). |
signal.description | Texto | Descripción personalizada de la señal, si la hay |
Método | Descripción |
signal.wait( ) | Espera por la señal (proceso/worker llamante) |
signal.trigger( ) | Disparar la señal (proceso/worker llamado) |
Este es un ejemplo típico de un worker que define una señal:
C_OBJECT($signal)
$signal:=New signal("Esta es mi primera señal")
CALL WORKER("myworker";"doSomething";$signal)
$signaled:=$signal.wait(1) //espera un máximo de 1 segundo
If($signaled)
ALERT("myworker finished the work. Result: "+$signal.myresult)
Else
ALERT("myworker has not finished in less than 1s")
End if
El método "doSomething" podría ser como:
C_OBJECT($1)
//todo procesamiento
//...
Use($1)
$1.myresult:=$processingResult //devuelve el resultado
End use
$1.trigger() // El trabajo está terminado
signal.wait( )
signal.description
signal.signaled
signal.trigger( )
Producto: 4D
Tema: Procesos (Comunicación)
Número
1641
Creado por: 4D v17 R4
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)