|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.12.2016, 07:35 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Ссылки на объекты
Здравствуйте.
Я тут намутил следующую конструкцию: 1) создаётся таймер; 2) к таймеру прикручиваются данные 3) к событию Tick прикручивается обработчик, который я так же соорудил. В дальнейшем таймер должен отработать пять тиков (по условию данных), но ссылка на этот таймер мне больше не нужна ... Сам таймер сделает что ему (то есть мне) надо. Но он сделает это только в том случае, если его не приберёт к рукам сборщик мусора. Отсюда вопрос: как хранить объекты, ссылки на которые мне не нужны ? Я конечно могу эти объекты просто скидывать в какой нибудь внешний генерик, но тогда ссылка на этот объект будет, а соответственно, объект не будет удаляться, генерик будет толстеть, ну вы поняли. Сам же обработчик истребляет таймер методом (sender as Timer).Dispose(); но если будет какая то внешняя ссылка без управления коллекцией - то коллекция будет расти в размерах, о чём я уже сказал ранее. Самая беда в том, что таймеры создаются рандомно, именно поэтому я не могу придумать, как управлять коллекцией, в которой я должен хранить эти самые объекты. (Вопрос: как хранить объекты, ссылки на которые мне не нужны ?) UPD: придумал ... Максимальное количество таких объектов = 20, а значит я могу обойтись массивом постоянного размера; и при создании объекта буду выбирать первое свободное место из этого массива ... Тему можно удалять.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 21.12.2016 в 07:41. |
21.12.2016, 23:48 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
делается Hashset временных объектов, по истечении времени жизни удаляете оттуда и все.
+ если объект IDisposable, то лучше всегда вызывать Dispose. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дочернии объекты ActiveX компонента, как добавить в ActiveX объект дочернии объекты. | nik531 | Общие вопросы Delphi | 0 | 17.08.2015 09:26 |
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты | ИльназВ | C# (си шарп) | 13 | 22.11.2012 19:00 |
Получить имя файла из ссылки(в конце ссылки нет имени файла) | Человек_Борща | Работа с сетью в Delphi | 11 | 05.06.2011 15:15 |
Объекты | Syltan | HTML и CSS | 1 | 24.03.2010 21:08 |