Не работает GC?
От: Аноним  
Дата: 16.04.07 04:28
Оценка:
Добрый день.
Ситуация следующая:
В приложении Windows Forms создаю таймер,запускаю и привязываю событие:

public Form1 () {
            InitializeComponent();

            Timer t = new Timer();
            t.Tick += new EventHandler(t_Tick);
            t.Interval = 1000;
            t.Start();
        t = new Timer();
            t.Tick += new EventHandler(t_Tick1);
            t.Interval = 1000;
            t.Start();
}


void t_Tick (object sender, EventArgs e) {
            txtResult.Text = DateTime.Now.ToString();
            GC.Collect();
        }

        void t_Tick1 (object sender, EventArgs e) {
            txtResult2.Text = DateTime.Now.ToString();
            GC.Collect();
        }

Далее этой же переменной присваиваю другой таймер,т.е. доступ к первому таймеру потерян.
При наступлении события запускаю сборщик мусора. По идее первый таймер должен быть уничтожен
,но он работает. Пробовал и в Release и в Debug. У Рихтера похожий пример,
все работает правильно.
Почему таймер не уничтожается,а если таких операций будет 1000?
Это разве не утечка ресурсов?
Я что то не понимаю.
Буду рад любому мнению.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.