Как запустить сборку мусора?

Кто-нибудь знает, возможно ли применить сборку мусора к новому компоненту StageVideo в AS3? Я пытался без успеха! Код ниже:

if ( this._stageVideo == null )
{
    this._stageVideo = stage.stageVideos[0];
    this._stageVideo.addEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);
}

Попытка в GC:

this._stageVideo = null;
this._stageVideo.removeEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);

1 ответ

this._stageVideo = null;
this._stageVideo.removeEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange)

Я удивлен, что это сработало, должно выдать исключение, вы должны сначала удалить прослушиватели событий, а затем обнулить его ссылку.

Сборщик мусора не запускается каждый раз, когда вы что-то аннулируете, но если вы можете использовать профилировщик Flash Builder, вы можете попытаться форсировать GC, а также, если вы хотите протестировать его, вы можете упаковать проект как AIR и вызвать GC вручную.

Существует ошибка / функция, которая вызывает GC, если вам не удалось запустить LocalConnection дважды (http://www.nbilyk.com/flash-garbage-collection):

try {
    new LocalConnection().connect('foo');
    new LocalConnection().connect('foo');
} catch (e:Error) {}
Другие вопросы по тегам