Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1

Почему поток выходит из деструктора

06.05.2017, 09:44. Показов 647. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Почему приложение завершает свою работу, ведь в деструкторе должно быть зацикливание. Спасибо.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace Core
{
    class Test
    {
        ~Test() { while (true); }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Test test = new Test();
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2017, 09:44
Ответы с готовыми решениями:

Почему не любят кидать исключения из деструктора?
Всем привет! Есть такое широко распространенное мнение, что бросать исключения из деструкторов - плохая идея. Почему плохая? ...

Поток выходит за пределы условия
Доброе утро форумчане. Столкнулся с такой проблемой, что поток начинает выделяться даже, когда в условием это запрещено. Вот код: ...

Android Thread поток не выходит из сна
Поток должен каждые 4 секунды выводить лог. Один раз выводит "Request", потом "try" и все. В чем может быть проблема? Thread...

4
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.05.2017, 10:05
Цитата Сообщение от _stanislav Посмотреть сообщение
C#
1
2
3
4
class Test
{
  ~Test() { while (true); }
}
Забористо

Цитата Сообщение от _stanislav Посмотреть сообщение
Почему приложение завершает свою работу, ведь в деструкторе должно быть зацикливание
Потому что финализатор запускается при сборке мусора, а сборка мусора происходит уже после выхода из приложения (если вообще происходит, ведь все ресурсы процесса и так освободятся на уровне ОС)
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
06.05.2017, 10:13  [ТС]
Storm23, я так понимаю нужно копать в сторону сборщика мусора, что бы понять?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.05.2017, 10:35
Цитата Сообщение от _stanislav Посмотреть сообщение
я так понимаю нужно копать в сторону сборщика мусора, что бы понять?
А как вы его будете копать? Это закрытое ПО.

Я потестил, финализатор все таки вызывается. Но к зависанию сборщика это не приводит. Видимо сборщик выделяет некоторое время на финализатор, и если он не завершился в срок, просто прерывает поток, не дожидаясь завершения.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.05.2017, 11:39
Цитата Сообщение от Storm23 Посмотреть сообщение
Видимо сборщик выделяет некоторое время на финализатор, и если он не завершился в срок, просто прерывает поток, не дожидаясь завершения.
Подтверждаю: при завершении процесса рантайм устанавливает таймаут на работу каждого деструктора в отдельности и на работу всех деструкторов в очереди.
Если один из таймаутов достигнут, то рантайм просто убивает процесс.
Конкретные таймауты зависят от версии фреймворка и среды, в которой работает CLR.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2017, 11:39
Помогаю со студенческими работами здесь

Почему конструктор в отличаи от деструктора не может быть виртуальным?
Вопрос озвучен :). Желательно, с разжёваным ответом. Спасибо

Почему при вызове деструктора класс как бы существует?
Создал класс,создал объект,в нем поля имеющие значения,вызвал деструктор,попробовал вызвать функцию ,которая выводит значение класса,все...

Асинхронный TCP сервер-клиент: не выходит считать поток
Ситуация у меня следующая: пишу приложение клиент-сервер, ну, в одном приложении и клиент и сервер, но работает либо-либо, просто для...

Клиент-сервер: Если запустить первый поток то он работает, при запуске второго потока выходит ошибка
Здравствуйте, пытаюсь разбить код на два потока. 1) Поток прием клиентов. void login_server() { struct sockaddr_in saddr; ...

Почему не выходит?
Иконки не отображаются) private void button1_Click(object sender, EventArgs e) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru