Как завершить поток в другом потоке
Я создал поток с помощью std::thread в C++.
std::thread thread_variable(function_name);
С помощью приведенного выше кода он создаст поток.
И мне нужно завершить этот поток, используя thread_variable в другом потоке, например TerminateThread() win32 api.
Как это можно сделать?
Спасибо
Что я уже пробовал:
Я пытался использовать дескриптор std::thread, но thread работает хорошо.
Спасибо
Afzaal Ahmad Zeeshan
Чтобы передать команду от одного потока к другому, вам нужно будет "сигнализировать" потоку, а затем выполнить действие. В большинстве простых способов это можно сделать с помощью переменной, которая уведомляет ThreadXYZ о завершении. Поток будет выполняться только один раз. В этом сценарии, скорее всего, поток находится в цикле while, который препятствует завершению потока.
Поток завершает себя; на основе условия или операторов. Чтобы завершить поток, вы можете убить его, но это не рекомендуемый подход вероятно это приводит к утечкам памяти.