| 4D v20.1CALL WORKER | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v20.1
 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 | Objeto, 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 Sobre Workers.
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 formula, designe o código 4D que se executará no contexto do processo pai de janela. Pode passar:
um objeto fórmula (ver Objetos Fórmula). Os objetos fórmula podem encapsular qualquer expressão executável, incluindo funções e métodos projeto;
uma string que contenha o nome do método projeto. Pode se passar uma string vazia, neste caso, o worker executa o metodo que usou originalmente para iniciar seu processo, se houver ( ou seja, o método de inicio do worker).
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
 var $vYear: Integer
 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
 #DECLARE($vYearInteger;$windowInteger) //referencia da janela e ano
 var $vStatResults : Object //para armazenar os resultados das estatísticas</p> <p style="text-align: left;">... //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
	Modificado: 4D v19 R6
	
	
	
	Manual de linguagem 4D ( 4D v20)
	
	Manual de linguagem 4D ( 4D v20.1)
	
	
 Adicionar um comentário
Adicionar um comentário