У меня есть код, ниже которого начинается новый поток. Функция BeginWork проходит через последовательность функций, которые имеют большую обработку исключений. Если threadgroup.interrupt_all(); называется индивидуальной функцией, обрабатывающей прерывание, и это заставляет поток оставаться в своем цикле, не прерываясь должным образом. Как я могу изменить свою обработку ошибок для учетной записи этого типа исключения и имитировать поведение, как если бы внешний блок catch try в цикле intied поймал исключение прерывания потока? Я думаю, возможно, поймать исключение времени interupt и установить логическое значение true, которое проверяется в основном цикле и ломается, если оно установлено в true.Правильный способ улавливать прерывание потока потока и выходную строку
void ThreadWorker(int intThread)
{
try
{
int X = 0;
do
{
cout << "Thread " << intThread << "\n";
BeginWork();
}
while (true);
}
catch(...)
{
cout << "Thread: " << intThread << " Interrupted.";
}
}