В .NET: если поток не выполняет очистку: задайте для свойства IsBackground потока значение true, и он завершится процессом.
Если очистка выполняетсяЯ рекомендую реализовать явный вызов, чтобы действительно установить логическое значение (или токен отмены при использовании Задачи в .NET). В этом случае поток, закрывающий процесс, должен будет ждать, по крайней мере, время ожидания рабочего потока, чтобыпросыпайся и убирайся.
Я рекомендую не прерывать поток.Хотя это может прервать поток, если во время прерывания он что-то делал, например, записывал в файл, он, возможно, не завершил свою работу, и это могло оставить состояние в подвешенном состоянии.