Re[3]: Не работает GC?
От: BluntBlind  
Дата: 16.04.07 06:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Может не совсем точно выразился. Я использую не System.Threading.Timer,а System.Windows.Forms.Timer.

Да, тут я мог бы догадаться.

А>И вопрос именно что таймер НЕ УНИЧТОЖАЕТЬСЯ GC!

GC.Collect вызывает сборку мусора и это не гарантирует уничтожение твоего объекта. Почитай, как работает GC. Там есть такое понятие как поколения. И старайся избегать вмешательств в работу GC.

А>"Нельзя терять ссылки на объект класса Timer до тех пор пока он тебе нужен".

А>Абсолютно согласен,но ведь все мы люди,и утечки в С++ происходили именно по невнимательности,В CLR вроде бы от этого защита,так почему не уничтожаеться таймер??

Это не утечка. Память будет собрана. Только произойдет это в любой момент, а ты расчитываешь, что твой объект жив.

У этого таймера тоже есть Dispose, а так же Stop() и св-во Enable.

Что мешает сделать так?
 void t_Tick1 (object sender, EventArgs e) {
   txtResult2.Text = DateTime.Now.ToString();
    ((Timer)sender).Stop();
    ....
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.