Ищите TerminateThread()
Функция WinAPI. Некоторое полезное объяснение можно найти here или посмотреть на документацию MSDN.
Конечно, после завершения вы должны посмотреть, не выделены ли какие-либо ресурсы, выделенные в потоке, бесплатно и бесплатно.
Update
Да, с помощью TerminateThread
плохая практика (как указано в комментариях). Я согласен с этим мнением. Но «никогда не используйте его, даже если вам действительно нужно его использовать», это слишком сильно, с моей точки зрения, и очень теоретично. Реальный мир, полный недостатков дизайна и багги сторонних библиотек.
Информация, заданная в вопросе, недостаточно для принятия правильного решения об этой конкретной ситуации. Например. это может быть временное обходное решение без каких-либо альтернатив и т. д.
Следовательно, с теоретической точки зрения правильный ответ: «Невозможно правильно завершить процесс, если вы не можете контролировать, как« замораживать »шаг в фоновом потоке «.
С практической точки зрения правильный ответ: «Невозможно правильно завершить процесс, если вы не можете контролировать, как« замораживать »шаг в фоновом потоке, но если вы понимаете, что не можете, но по-прежнему нуждается в такой функциональности - используйте TerminateThread() API вызова»
О TerminateThread против TerminateProcess:
- Создание/процесс завершения требует больше ресурсов, чем создание/завершение нити
- Создание/завершение процесса сложнее => более место для ошибок
- TerminateProcess не заканчивается немедленно и ждет ввода-вывода o заполнение (MSDN) => не выбор для сценария, когда удаленная общая папка становится недоступной при чтении и других подобных сценариях ввода-вывода.
- Создание и процесс завершения требует больше привилегий пользователей, чем создание потока, сравнить MSDN here и here
О высвобождении ресурсов: стек
Thread освобождается автоматически при завершении нити (как mentonied в MSDN).Ресурсы - это прежде всего ресурсы, выделенные основным потоком для связи с фоновым потоком. Например. структуры памяти, мьютексы и т. д.
О каком ресурсе вы говорите? –
Подобный вопрос [здесь] (http://stackoverflow.com/questions/255276/how-to-stop-long-executing-threads-gracefully) – SimaWB