| 4D v18New signal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 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 ifEl 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 v18)
	
	
	
 Añadir un comentario
Añadir un comentario