Ajude o site desativando o bloqueador de anúncio

ASSINE A NEWSLETTER

Cadastrando...
PIX uDesenv pix deposito

FreeObj [AS]

Autor: Eurai Criado: 01/01/2016 Atualizado: 27/07/2021

Descrição

Elimina da memória a instância do objeto informado como parâmetro.

 

Sintaxe

FreeObj( )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
oObj Objeto Indica o objeto ADVPL a ser eliminado da memória   X  

 

Retorno

Retorno Tipo Descrição

 

Exemplo

#INCLUDE "TOTVS.CH"

User Function FreeObj()
Local oSay01 := TSay():New( 010,005,{|| "UA:" },GetWndDefault(),,,.F.,.F.,.F.,.T.,,,550,008)

FreeObj( oSay01 )

Return( Nil )

Resultado
freeobj_-_resultado_01  

 

 

Informações adicionais

A função FreeObj() elimina a instância referenciada pelo objeto informado como parâmetro. Esta função é utilizada para eliminar explicitamente a instância do objeto da memória do server, independentemente de haver outras referências aquela instância do objeto. Ao eliminarmos uma instância de objeto utilizando a função FreeObj(), as variáveis que faziam referência à instância eliminada passam a ter conteúdo nulo ( NIL ). Caso alguma referência ao objeto elimiado seja utilizada, a aplicação AdvPL será finalizada com a ocorrência de erro fatal "Variable is not an object"

A limpeza de uma instância de uma classe/objeto, na linguagem AdvPL, é realizada normalmente pelo run-time do Kernel do Application Server, quando a variável sai do escopo de processamento e/ou quando a variável é anulada ( oVariavel := NIL ). Porém, caso a instância deste objeto esteja sendo referenciada por mais de uma variável, no momento que uma das variáveis é anulada, é eliminada apenas uma referência, mas a instância do objeto continua ativa, pois ela ainda está sendo referenciada por outra variável. É recomendável o uso da função FreeObj() para objetos de componentes não-visuais, como classes AdvPL e/ou WebServices, uma vez que a determinada instância não será mais utilizada e/ou necessária no processamento, forçando a limpeza da instância do objeto da memória e anulando todas as referências ativas do mesmo

A utilização da função FreeObj() requer cuidado especial quando utilizada para eliminar da memória um objeto de uma classe visual (Objeto de Interface). Se a função for chamada para eliminar um objeto de interface ainda ativo, o Application Server pode apresentar comportamentos inesperados, como ocorrências de "Exception Access Violation", "Segment Fault" , congelamento do serviço e/ou queda do servidor de aplicação

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎