Obtém o valor do campo de uma thread criada através do bloco Inserir ou alterar valor na thread. Esse bloco utiliza a classe ThreadLocal<T> do Java, consulte a documentação oficial para mais informações.


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.


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.


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:


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.


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

Nesta página