Здравствуйте, <Аноним>, Вы писали:
А>По поводу поколений и самостоятельной работы GC я не подумал.
А>Похоже он для Windows Form продлевает жизнь данного объекта,как в Debug так и в Release.
поколения тут ни при чем.
Таймер должен както узнавать что в очереди сообщений появилось WM_TIMER? должен!
Как он это делает? подписывается на обработку сообщений.
А что представляет собой подписка? подписка представляет собой делегат, который включает ссылку на объект и на метод в объекте.
Таким образом ссылка на таймер остается в делегате которым таймер подписался на обработку сообщений окна.
Чтобы таймер отписался его нужно выключить.
Т.е. перед тем как менять значение переменной timer, нужно сделать следующее:
timer.Enabled = false;
timer = new Timer();
... << RSDN@Home 1.2.0 alpha rev. 676>>