Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
CALL WORKER
|
CALL WORKER ( processo ; método {; param}{; param2 ; ... ; paramN} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
processo | Texto, Inteiro longo |
![]() |
Nome ou número de processo do worker | |||||
método | Texto |
![]() |
Nome do método de projeto a chamar | |||||
param | Expression |
![]() |
Parâmetros passados ao método | |||||
O comando CALL WORKER cria ou chama o processo worker cujo nome ou ID se passa em processo e pede a execução do metodo em seu contexto com o parâmetro opcional param.
O comando CALL WORKER encapsula os parâmetros param em uma mensagem e o envia no quadro de mensagem de worker. Para obter mais informação sobre os processos worker, consulte [#title id="8727"/].
No parâmetro processo, pode especificar o worker utilizando seu nome ou seu número de processo:
Nota: o processo principal, criado por 4D quando se abre um banco de dados para a interface de usuário e o modo de aplicação, é um processo trabalhador e pode ser chamado por CALL WORKER.Entretanto, já que seu nome pode variar em função da linguagem de 4D, é preferível designar este processo utilizando seu número (sempre 1) quando for utilizado CALL WORKER. [
O processo worker aparece na lista de processos de Explorador de execução e é devolvido pelo comando PROCESS PROPERTIES quando se aplicar a este processo.
Em metodo, se passa o nome de método de projeto a executar no contexto do processo worker. Pode passar uma string vazia; neste caso, o trabalhador executa o método que se utilizou originalmente para começar seu processo, se houver (ou seja, o método de inicio do worker).
Nota: não é possível passar uma string vazia no método quando o comando chamar ao processo principal (processo número 1), já que não foi iniciado utilizando um método projeto. CALL WORKER (1;"") não faz nada.
Também pode passar parâmetros ao metodo utilizando um ou mais parâmetros opcionaiss param. Passe os parâmetros da mesma maneira que os passaria a uma subrotina (ver ). Ao iniciar a execução no contexto do processo, o método de processo recebe os valores de parâmetro em $1, $2, e assim sucessivamente. Lembre que os arrays não podem ser passados como parâmetros a um método. Além disso, no contexto do comando CALL WORKER, as seguintes considerações adicionais devem ser levadas em consideração:
Um processo worker se mantém vivo até que a aplicação esteja fechada ou o comando KILL WORKER se chame explicitamente. Para liberar memória, não esqueça de chamar a este comando quando um processo worker já não for necessário.
Em um formulário, um botão inicia um cálculo, por exemplo as estatísticas relativas ao ano selecionado. O botâo cria ou chama a um processo de trabalho que vai calcular os dados enquanto o usuário pode continuar trabalhando no formulário.
O método do botão é:
//chamar ao trabalhador myWorker com o parâmetro
C_LONGINT(vYear)
vYear:=2015 // poderia ter sido selecionado pelo usuário no formulário
CALL WORKER("myWorker";"workerMethod";vYear;Current form window)
O código de workerMethod é:
// este é o método do trabalhador
// pode ser apropriativo ou cooperativo
C_LONGINT($1) //obtém o ano
C_LONGINT($2) //obtém a referência da janela
C_OBJECT(vStatResults) //para armazenar os resultados das estatísticas
... //calcular estatísticas
//quando tiver terminado, volta a chamar o formulário com os valores calculados
//vStatResults poderia mostrar os resultados no formulário
CALL FORM($2;"displayStats";vStatResults)
Produto: 4D
Tema: Processos (Comunicações)
Número
1389
Criado por: 4D v15 R5
Modificado: 4D v16 R4
Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)