FreeObj - Resultado

FreeObj

 

Descrição

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

Sintaxe

FreeObj( <oObj> )

Parâmetros

ParNomeTipoDescriçãoDefaultObgRef
01oObjObjetoIndica o objeto ADVPL a ser eliminado da memóriaX

Retorno

RetornoTipoDescriçã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

FreeObj – Resultado

Informação Adicional

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

 

0 respostas

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *