Jump to content

Se eu destruir um elemento seus eventos são destruídos também ou precisa dar removeEventHandler?


Recommended Posts

Tem uma coisa que anda me comovendo, quando nós criamos um elemento (qualquer que seja, ex: checkpoint ) e atribuímos a ele um evento, se destruirmos este elemento (destroyElement) o evento ainda precisa ser apagado? visto que o elemento em si não existe mais... fico pensando se o servidor "guardaria" esses eventos e a memória começar a aumentar por conta de não estar dando dispose deles... tipo quando você faz uma Query e você não da dbFree para liberar a query .. vai gerando um gargalo.

Pergunto pois em outras linguagens, como o C#, eventos precisam ser desvinculados pois ainda podem ser chamados... mas no MTA, apesar dele não ser "chamavél" será que pode estar lá ainda? podendo gerar impacto na memória ao longo prazo? 

 

A duvida é se eu preciso dar "removeEventHandler" ou o destroyElement já basta?

Link to comment

Creio eu que nao tem necessidade, mas eventos como "onClientRender" sao necessarios fechar, por quando renderizam uma tabela ou algo, caso nao removem estes eventos as tabelas vao ficar aberto ate que a resource seja reiniciado ou coisa do tipo

Link to comment
On 01/01/2021 at 22:33, HotPotato said:

Tem uma coisa que anda me comovendo, quando nós criamos um elemento (qualquer que seja, ex: checkpoint ) e atribuímos a ele um evento, se destruirmos este elemento (destroyElement) o evento ainda precisa ser apagado? visto que o elemento em si não existe mais... fico pensando se o servidor "guardaria" esses eventos e a memória começar a aumentar por conta de não estar dando dispose deles... tipo quando você faz uma Query e você não da dbFree para liberar a query .. vai gerando um gargalo.

Pergunto pois em outras linguagens, como o C#, eventos precisam ser desvinculados pois ainda podem ser chamados... mas no MTA, apesar dele não ser "chamavél" será que pode estar lá ainda? podendo gerar impacto na memória ao longo prazo? 

 

A duvida é se eu preciso dar "removeEventHandler" ou o destroyElement já basta?

isso vai mudar se for um elemento criado por você ou um já do MTA como: (player, object, vehicle etc..) agora um marker por ex:

você cria um marker com a váriavel 'MarkerTeste', e cria um evento 'onMarkerHit' ultilzando o 'MarkerTest' é óbvio que se o 'MarkerTeste' vou destruido o evento vai avisar que não está achando ele gerando um ERROR

Link to comment
45 minutes ago, HiroShi said:

isso vai mudar se for um elemento criado por você ou um já do MTA como: (player, object, vehicle etc..) agora um marker por ex:

você cria um marker com a váriavel 'MarkerTeste', e cria um evento 'onMarkerHit' ultilzando o 'MarkerTest' é óbvio que se o 'MarkerTeste' vou destruido o evento vai avisar que não está achando ele gerando um ERROR

Isso já foi testado por você? Porque pela lógica, se não tem mais o marker, não tem como o evento ser acionado.

Link to comment
6 hours ago, HiroShi said:

isso vai mudar se for um elemento criado por você ou um já do MTA como: (player, object, vehicle etc..) agora um marker por ex:

você cria um marker com a váriavel 'MarkerTeste', e cria um evento 'onMarkerHit' ultilzando o 'MarkerTest' é óbvio que se o 'MarkerTeste' vou destruido o evento vai avisar que não está achando ele gerando um ERROR

Já fiz testes em empregos que fiz, após destruir o marker não ocorreu nenhum erro mesmo com o evento ainda adicionado.

Link to comment
3 hours ago, LucasST said:

Já fiz testes em empregos que fiz, após destruir o marker não ocorreu nenhum erro mesmo com o evento ainda adicionado.

mas aí o evento onMarkerHit ficará lá sem sentido algum.

9 hours ago, ber said:

Isso já foi testado por você? Porque pela lógica, se não tem mais o marker, não tem como o evento ser acionado.

isto é apenas um ex.

Link to comment
On 01/01/2021 at 22:33, HotPotato said:

Tem uma coisa que anda me comovendo, quando nós criamos um elemento (qualquer que seja, ex: checkpoint ) e atribuímos a ele um evento, se destruirmos este elemento (destroyElement) o evento ainda precisa ser apagado? visto que o elemento em si não existe mais... fico pensando se o servidor "guardaria" esses eventos e a memória começar a aumentar por conta de não estar dando dispose deles... tipo quando você faz uma Query e você não da dbFree para liberar a query .. vai gerando um gargalo.

Pergunto pois em outras linguagens, como o C#, eventos precisam ser desvinculados pois ainda podem ser chamados... mas no MTA, apesar dele não ser "chamavél" será que pode estar lá ainda? podendo gerar impacto na memória ao longo prazo? 

 

A duvida é se eu preciso dar "removeEventHandler" ou o destroyElement já basta?

O ideal é que use os dois para que o evento não fique ocupando memória do seu servidor sem necessidade, mas é coisa mínima. Erro não vai dar, a não ser que você use o checkpoint para alguma coisa na função do evento e você, de alguma outra maneira, chame essa função.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...