Troca de mensagens entre processos

Tradução automática de Deepl

4D v15 R5 introduz uma forma nova, simples e poderosa de troca de informação entre processos e também entre processos e formas. Esta característica baseia-se num sistema de mensagens assíncronas que permite chamar e pedir aos processos e formulários que executem métodos com parâmetros no seu próprio contexto.

O Processo do Trabalhador

Um trabalhador tem uma caixa de mensagens. O processo do trabalhador é criado na primeira utilização e o seu processo associado é também automaticamente lançado na primeira utilização. Ao contrário do processo “New process“, um processo de trabalhador permanece vivo após o fim da execução do método.

Um trabalhador pode chamar-se a si próprio para trabalhar em grandes trabalhos em pedaços. Os trabalhadores reduzirão drasticamente a necessidade de variáveis inter-processo, bem como a necessidade de semáforos para permitir o processamento assíncrono paralelo. É necessário um trabalhador para a preemptiva multi-tarefa. No entanto, um trabalhador pode ser utilizado com processos cooperativos, pelo que também é útil com ambientes de 32 bits ou interpretados.

Estão disponíveis dois novos comandos:

  • CALL WORKER” encapsula o nome do método do projecto e quaisquer parâmetros numa mensagem e afixa-o na caixa de mensagens do trabalhador.

CALL WORKER (nome do processo| número do processo; nome do método de projecto;param1;…;paramN)

  • KILL WORKER” envia uma mensagem ao trabalhador especificado pedindo-lhe que esqueça qualquer mensagem pendente e que se mate a si próprio.

KILL WORKER (nada| nome do processo| número do processo)

Uma base de dados de exemplo está disponível para demonstrar a nova funcionalidade:

Exemplo de base de dados

Formulário de chamada

Agora, cada formulário que corre numa janela tem uma caixa de mensagens. “CALL FORM” permite que um método de projecto seja executado com argumentos no contexto de um formulário apresentado numa janela, independentemente do processo que possui a janela.

O comando faz usando “CALL PROCESS” juntamente com variáveis de inter-processo para passar mensagens obsoletas. “CALL FORM” pode ser utilizado dentro de um contexto de formulário para se chamar a si próprio a fim de empilhar ou atirar pedaços de trabalho. Isto elimina a necessidade de trabalhar em soluções tais como SET TIMER(1). Embora extremamente necessário para processos preventivos, também funciona com processos cooperativos, com ambientes de 32 bits ou interpretados.

A sintaxe é:
CALL FORM (referência da janela;nome do método do projecto;param1;…;paramN)

De modo semelhante a “CALL WORKER”, “CALL FORM” encapsula o nome do método e os argumentos de comando numa mensagem que é afixada na caixa de mensagens do formulário. O formulário executa então a mensagem no seu próprio processo.

Está disponível uma base de dados de exemplo para demonstrar a nova funcionalidade:

Exemplo de base de dados

Para mais detalhes, consulte o manual de actualização 4D v15 R5.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.