Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: DI-2130
Obter

Obtém o valor do campo de uma thread criada através do bloco Inserir ou alterar valor na thread

Obtém um valor no escopo da thread corrente.

Aviso
titleObservação

Os valores definidos na thread terão vida apenas durante o escopo da thread e deixam de existir ao final dela.

Parâmetros de entrada

NomeTipoDocParâmetro 1TextoNome do campoParâmetro 2TextoValor do campo

Retorno

Retorna um texto.

Compatibilidade

Image Removed Servidor

Exemplo

No exemplo abaixo, a função "InserirValorThread" cria um valor no escopo da thread e em seguida chamamos a função "ObterValorThread" que imprime esse valor no console do depurador.

Image Removed

Figura 1 - Exemplo de uso dos blocos de Thread

. Esse bloco utiliza a classe ThreadLocal<T> do Java, consulte a documentação oficial para mais informações.


Image Added

Figura 1 - Bloco Obter valor da thread

Compatibilidade

Bloco servidor: cronapi.util.Operations.getFromThread()

Retorno

Retorna o conteúdo contido no campo de uma thread.

Parâmetros

Nome do campo

Nome do campo da thread a ter seu valor obtido.

  • Posição: 1
  • Inglês: Field name
  • Tipo: Texto / String
  • Exemplo: "nome"

Exemplo 1

A imagem abaixo mostra um exemplo de uso do bloco Inserir ou alterar valor na thread. Na primeira função, estamos inserindo no escopo da thread o campo "nome" e, em seguida, é chamada a função "ObterValorNaThread". Nesta segunda função, obtemos o valor do campo "nome" utilizando o bloco Obter valor na thread, que será impresso no console do depurador.


Image Added

Figura 2 - Exemplo de uso do bloco Obter valor na thread


A imagem a seguir mostra o resultado de execução da função da Figura 2, em que o valor do campo "nome" é impresso no console do depurador.


Image Added

Figura 2.1 - Resultado de execução da função da Figura 2

Exemplo 2

Neste segundo exemplo, vamos executar a função abaixo utilizando a funcionalidade do Agendador de Tarefas acessível a partir da aba Projeto no menu do sistema. Nesta ferramenta, configuramos uma tarefa para executar a função da Figura 3 a cada 15 segundos.

Na função da Figura 3, a cada execução da função pelo Agendador, obtemos a hora atual e verificamos se o minuto é ímpar. Em caso afirmativo, o bloco Inserir ou alterar valor na thread armazena a hora atual. Caso contrário, o bloco Obter valor na thread obtém o valor armazenado. Configure a função de bloco de programação como a imagem abaixo:


Image Added

Figura 3 - Função que será executada pelo Agendador de Tarefas


  1. Defina uma variável com o nome "horaAtual" e, nela, insira o bloco Obter data e hora atual.
  2. Defina uma variável com o nome "minuto" e, nela, insira o bloco Obter minuto da data com a variável "horaAtual".
  3. Utilizamos os blocos imprime e criar texto com para imprimir a variável "horaAtual".
  4. Insira o bloco se faça e, nele, o bloco é par, configurado com a opção ímpar, com a variável "minuto".
  5. No parâmetro faça do bloco condicional, adicione os blocos imprime e criar texto com para imprimir a variável "minuto" e, na sequência, o bloco Inserir ou alterar valor na thread. No parâmetro Nome do campo do bloco, inserimos o texto "horaComMinutoImpar" e, no Valor do campo, a variável "horaAtual".
  6. No parâmetro senão, insira os blocos imprime e criar texto com para imprimir o valor da thread, utilizando o bloco Obter valor na thread.


Após executar o projeto, a função da Figura 3 será executada a cada 15 segundos os resultados serão impressos no console do depurador, de acordo com o minuto da hora obtida. Podemos ver uma parte do resultado de execução na imagem abaixo.

Em destaque, na imagem, vemos o resultado de impressão do bloco Obter valor na thread. Observe que o último "Valor na thread" está sem resultado, isso pode acontecer porque em cada execução um valor é inserido no escopo de uma thread e, possivelmente, esse valor da thread obtida ainda não tinha sido armazenado nela.


Image Added

Figura 3.1 - Resultado de execução da função da Figura 3

Nesta página

Índice

Sobre Thread

Para saber mais sobre o assunto, acesse o verbete Thread (Wikipedia).