Re[5]: Не работает GC?
От: _Morpheus_  
Дата: 17.04.07 14:58
Оценка: 13 (2)
Здравствуйте, <Аноним>, Вы писали:

А>По поводу поколений и самостоятельной работы GC я не подумал.

А>Похоже он для Windows Form продлевает жизнь данного объекта,как в Debug так и в Release.

поколения тут ни при чем.

Таймер должен както узнавать что в очереди сообщений появилось WM_TIMER? должен!
Как он это делает? подписывается на обработку сообщений.
А что представляет собой подписка? подписка представляет собой делегат, который включает ссылку на объект и на метод в объекте.

Таким образом ссылка на таймер остается в делегате которым таймер подписался на обработку сообщений окна.
Чтобы таймер отписался его нужно выключить.
Т.е. перед тем как менять значение переменной timer, нужно сделать следующее:
timer.Enabled = false;

timer = new Timer();
... << RSDN@Home 1.2.0 alpha rev. 676>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.