Pregunta

Actualmente estoy trabajando en la aplicación Flex donde estoy usando la variante de múltiples núcleos de PureMVC. Mi pregunta es, en mi representación estoy haciendo llamada remota y adjuntando algunos (resultado y FALLO) detector de eventos. Así que en mi código de controlador de eventos debería eliminar los oyentes de forma explícita para hacer RemoteObject elegibles clase para collecton basura?

   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);
   }

Así que aquí hostController se mantiene fuerte referencia tanto de los oyentes. Así que después de resultEvent hace hostController es elegible para la recolección de basura o tengo que mencionar referencia débil para los oyentes para hacer elegibles para hostController collectioin basura?

¿Fue útil?

Solución

creo que debería eliminar los oyentes de forma explícita. Sería por lo menos hacer que sea más fácil para todo el mundo a leer el código.

No estoy seguro de si se mantiene ninguna otra referencia a la hostController (como lo obtuvo de un hostController () ). Si usted no tiene ninguna otra referencia (por ejemplo, si hostController () es un simple fábrica de crear-olvidar) y utilizar referencias débiles en los oyentes, eso quiere decir que sea elegible para la recolección de basura, incluso antes la ultima de trabajo -. por lo que yo entiendo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top