Question

Je travaille actuellement sur l'application flexible où je suis en utilisant la variante multicoeur de PureMVC. Ma question est dans mon proxy je fais appel à distance et fixer certains (résultat et DÉFAUT) écouteur d'événement. Donc, dans mon code de gestionnaire d'événements dois-je supprimer explicitement les auditeurs pour faire la classe RemoteObject admissible à collecton des ordures?

   public function getTableGridData():void
   {
      var hostController:RemoteObject=this.hostController("ABC");
      hostController.addEventListener(ResultEvent.RESULT, handleResult);
      hostController.addEventListener(FaultEvent.FAULT, handleFault);
      hostController.getTableData();
   }

   private function handleResult(event:ResultEvent):void
   {
      ApplicationFacade.getInstance(key).sendNotification("abc", event.result);
   }

Alors ici Hostcontroller tient référence forte des deux auditeurs. Ainsi, après ResultEvent ne Hostcontroller est éligible pour la collecte des ordures ou je dois mentionner référence faible pour les auditeurs pour faire Hostcontroller admissibles à collectioin des ordures?

Était-ce utile?

La solution

Je pense que vous devez supprimer les auditeurs de façon explicite. Il serait au moins le rendre plus facile pour tout le monde à lire le code.

Je ne sais pas si vous gardez toutes les autres références à cette Hostcontroller (comme vous l'avez obtenu de Hostcontroller () ). Si vous n'avez pas d'autres références (par exemple, si Hostcontroller () est un simple créer forget usine) et utiliser des références faibles sur les auditeurs, cela voudrait dire qu'il est admissible à la collecte des ordures avant même il termine son travail -. pour autant que je le comprends

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top