IMPLEMENT_DYNCREATE, «Использовать MFC в статической библиотеке» и наследование

Как правило, это плохая идея прекратить работу потока извне, потому что вы не знаете состояние, в котором в данный момент находится поток. Возможно, что ему нужно сделать некоторые очистки, и он не сможет сделайте это, когда вы принудительно отключите его. Вот почему все методы Thread, которые делают это, отмечены как устаревшие .

Гораздо лучше использовать один из многих методов, доступных для межпроцессной связи, чтобы сигнализировать о выполнении процедуры самой нитью, что она должна прервать свою работу и выйти нормально. Один из способов сделать это - добавить к вашему runnable метод abort(), который вызывает флаг, объявленный как volatile. Внутренний цикл вашего Runnable проверяет этот флаг и выходит (контролируемым образом), когда этот флаг поднят.

1
задан Christian Genne 7 September 2010 в 08:33
поделиться