| 4D v18New signal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 New signal 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| New signal {( descrição )} -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| descrição | Texto |   | Descrição para o sinal | |||||
| Resultado | Objeto |   | Objeto nativo encapsulando o sinal | |||||
O comando New signal cria um objeto sinal.
Um sinal é um objeto compartilhado que pode ser passado como parâmetro de um worker ou processo a outro, de modo que:
Opcionalmente, pode passar no parâmetro descrição um texto personalizado que descreve o sinal. Este texto também pode ser definido depois da criação do sinal.
Como o objeto sinal é um objeto compartido (ver Objetos compartidos e Coleções compartidas), també pode ser utilizado para manter as propriedades de usuário, incluída a propriedade [#title id="9602"/], chamando a estrutura Use...End use.
Valor devolvido
O objeto sinal contém as propriedades abaixo:
| Propriedade | Tipo | Descrição | 
| signal.signaled | Booleano | (propriedade de apenas leitura) false na criação da sinal. Se converte em true quando se chama o método signal.trigger( ). | 
| signal.description | Texto | Descrição personalizada da sinal, se houver | 
| Método | Descrição | 
| signal.wait( ) | Espera pelo sinal (processo/worker chamante) | 
| signal.trigger( ) | Disparar o sinal (processo/worker chamado) | 
Este é um exemplo típico de un worker que define um sinal:
 C_OBJECT($signal)
 $signal:=New signal("Este é meu primeiro sinal")
 CALL WORKER("myworker";"doSomething";$signal)
 $signaled:=$signal.wait(1) //espera um 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 ifO método "doSomething" poderia ser como:
 C_OBJECT($1)
  //todo procesamento
  //...
 Use($1)
    $1.myresult:=$processingResult  //devolve o resultado
 End use
 $1.trigger() // O trabalho está terminado
									 signal.wait( )
									
									signal.description
									
									signal.signaled
									
									signal.trigger( )
									
	Produto: 4D
	Tema: Processos (Comunicações)
	Número 
        1641
        
        
        
	
	Criado por: 4D v17 R4
	
	
	
	Manual de linguagem 4D ( 4D v18)
	
	
	
 Adicionar um comentário
Adicionar um comentário