Я хотел бы знать, что происходит с потоками, которые работают в фоновом режиме после того, как объект собирается GC? Убивают ли они себя или делают процесс зомби?Бесконечная нить в фоновом режиме и GC
private Thread currentDateTimer;
private DateTime ActualDateTime;
if (this.currentDateTimer == null)
{
this.currentDateTimer = new Thread(() =>
{
while (true)
{
this.ActualDateTime = DateTime.Now;
Thread.Sleep(60 * 1000 - (DateTime.Now.Second * 1000 + DateTime.Now.Millisecond));
}
}) { IsBackground = true };
this.currentDateTimer.Start();
}
Нить не знает, когда остановиться.
Будет ли эта нить убивать после того, как экземпляр объекта будет собран? Будет ли GC собирать этот объект с тех пор, как его поток нуждается в this.ActualDateTime?
Надеюсь, у кого-то была такая же проблема.
Я понял, что объект никогда не будет собран, даже если у меня нет ничего другого, указывающего на объект? –
Как говорит @Lasse, делегат потока все равно укажет на объект, чтобы он не собирался. – Venemo
Интересно. Напоминает мне о GC из ActionScript 3, где tweens внезапно перестали работать, если u объявили их в локальной области – DarkBee