Здравствуйте, Философ, Вы писали:
Ф>А какие именно подробности тебе нужны? Незакрытых файлов, не освобождённых объектов синхронизации и инконсистентного состояния программы не достаточно? По-моему вполне. Потоки убивать нельзя!
У меня складывается впечатление, что ты не разобрался, но уже начал громко орать. В расте нельзя "убить поток". Ну кроме как получив нативный хендл и сделав это средствами системного апи, но это можно сделать везде, где можно получить этот самый хендл и к языку оно отношения не имеет.
Паника, о которой говорилось выше — это просто "исключение", которое разматывает стек (есть альтернативный режим в котором паника — это немедленное завершение приложения). Никаких проблем при этом не возникает. Можно, конечно, писать код небезопасный к исключениям, но это везде так. И я бы сказал, что в расте это немного сложнее: повсеместно используется RAII и глобальное состояние не поощряется.
Когда-то давно панику можно было перехватить исключительно на границе потоков, а не в произвольный момент. Из-за этого периодически всплывает связь паники с потоками.
Ф>Странно, что ты только про этот метод спросил, а вот про TerminateThread() умолчал.
Честно говоря, я вообще не понял на что по ссылке надо обращать внимание, поэтому и переспросил. С .NET дела практически не имел. Спорить с тем, что прибить поток в произвольный момент ни к чему хорошему не приведёт я не буду.