Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
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 if
O 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 v20)
Manual de linguagem 4D ( 4D v20.1)
Manual de linguagem 4D ( 4D v20.2)
Manual de linguagem 4D ( 4D v20.3)
Manual de linguagem 4D ( 4D v20.4)
Manual de linguagem 4D ( 4D v20.5)
Manual de linguagem 4D ( 4D v20.6)