Есть такой код...
public void SomeMethod()
{
new Timer(new TimerCallback(Perform), null, someTimeInterval, -1);
}
private void Perform(object state)
{
...
...
...
}
Теперь вопросы:
1. Если GC начнет работать после того как таймер сработал, убъет ли он объект таймера?
2. Если CG начнет работать до того как таймер сработал, убъет ли он объект таймера?
3. Как добиться, чтоб таймер гарантировано сработал, а после этого был убран из памяти GC?
>
> Теперь вопросы:
> 1. Если GC начнет работать после того как таймер сработал, убъет ли он объект таймера?
Какая разница? Таймер ведь уже сработал.
> 2. Если CG начнет работать до того как таймер сработал, убъет ли он объект таймера?
Убъет
> 3. Как добиться, чтоб таймер гарантировано сработал, а после этого был убран из памяти GC?
Сохрани ссылку на таймер где-нибудь у себя.
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
>3. Как добиться, чтоб таймер гарантировано сработал, а после этого был убран из памяти GC?
Сохранить его в strong reference, а затем обнулить.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Аноним, Вы писали:
А>>3. Как добиться, чтоб таймер гарантировано сработал, а после этого был убран из памяти GC?
А>Сохранить его в strong reference, а затем обнулить.
Сильную ссылку?