Árvore de páginas

Envia uma chamada para uma thread, que não precisa ser necessariamente do mesmo ambiente, que está em espera.

Sintaxe

IPCGo( < cSemaforo > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cSemaforo

caractere

Indica o local ou semáforo em que as threads foram iniciadas. Observação: O semáforo especificado não deve conter letras minúsculas. Todas as letras informadas no semáforo devem ser maiúsculas.

X

 

Retorno

Nome

Tipo

Descrição

bRet

L

Retorna .T. caso a requisição foi enviada a um IpcWaitEx() em espera.

Observações

  • Esta função recebe mais 15 argumentos opcionais para passagem de dados, porém esse valor não pode ser do tipo bloco de código ou lógico.
  • Ao especificar o semáforo que desejamos, no parâmetro <cSemaforo>, a função pegará a primeira thread livre que encontrar na IPCWaitEx().
  • Caso não exista nenhum semáforo em espera com o nome especificado no momento da chamda da função IpcGo(), ela retorna .F. imediatamente. 

Exemplos

Exemplo 1
#DEFINE SEMAFORO 'IDUNICOTESTE'

#DEFINE SEMAFORO 'IDUNICOTESTE'

User Function ipcgo()
  StartJob("U_ipcjobs",GetEnvServer(),.F.)
  StartJob("U_ipcjobs",GetEnvServer(),.F.)
  

  Sleep( 7000 )
  
  IPCGo( SEMAFORO, "Data atual " + cvaltochar(date()) )
  
Return

User Function ipcjobs()
  Local cPar
  while !killapp()
    lRet := IpcWaitEx( SEMAFORO, 5000, @cPar )
    if lRet
      conout(cPar)
      exit
    endif
  enddo
Return

Abrangência

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

Veja também

  • Sem rótulos