![]() |
Так-так-так. Всегда по старинке чистил все последовательно: удалить из отображения, убить слушателей, занулить ссылку. А тут, оказывается, можно и не убивать слушателей, ибо можно поставить пятый параметр в логическую единицу. Ага. Итого мы имеем экономию в строчках.
Хм, Николай Мукк'офф, помнится, писал, мол, слабые ссылки хороши, но не всегда. Мол, слушатели могут удалиться в ненужный момент, потому что ГЦ так пожелал. Я не прав? |
Я не агитирую за неудаление руками слушателей, я за то, чтоб использовать слабые ссылки в слушателях как страховку на случай, если забудут/будет неудобно руками удалять. Плюс пока GC не съест слушателя - он может вызываться и жрать проц(ну в случае мышиных евентов не будет, понятно).
Если в слушателе используется анонимная функция, единственная ссылка на которую - в слушателе, то GC её в "ненужный момент" съест. Это есть (и это описано в доке). В остальном - всё ок (или есть баг, что очень врядли). |
Ага. А то я испугался уже, что пропустил облегчение жизни кодера из виду. А тут простая подстраховка.
|
Не всегда работает стабильно слабая ссылка, слушатели слетают раньше времени часто в случае локальных переменных (даже на сцене когда они)
|
Пример бы, это тогда баг, а что-то не нарыл я про такое.
Не бывает локальных DisplayObject'ов, бывают локальные ссылки на них. И в случае добавления их на сцену добавляется нормальная ссылка. Получается какая-то "полуслабая" ссылка - обьект на сцене не мрёт, а слушатель - мрёт. |
Ага, нашел:
[IMG]http://s40.***********/i090/1006/0d/1410bda9d883t.jpg[/IMG] Это не в упрек, это просто информативная выдержка из книги. А двумя страницами ранее было сказано про опасность анонимных функций и слабые ссылки как помощники в их удалении. |
и охота вам доверять и без того не совсем "умному" GC с слабыми ссылками, он и так чистит как ему нравиться, а вы ему еще такие важные вещи хотите доверить.
Нет, с листенерами нада все четко - в нужном месте поставили, пропала необходимость, сообщили товарищу из уборочного бюро - "приберите тут как только у вас появиться свободная минутка" и все...иначе кучи багов не избежать, все это ИМХО на личном опыте. |
Цитата:
Все удаления "руками" слушателей нужны чтобы "сэмулировать" удаление, само удаление произойдет по воле GC. |
Цитата:
Цитата:
Но я согласен. Добавлено через 1 час 34 минуты Кстати, а вот нашел в пришпиленной теме в этом разделе: http://flasher.ru/forum/showpost.php...3&postcount=40 |
| Часовой пояс GMT +4, время: 08:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.