| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > корректное завершение программы |
| Автор: box 27.9.2013, 16:25 |
| всем привет! есть прога, она создает 3 треада, как завершить выполнение всей проги из любого из треада ? |
| Автор: vinter 27.9.2013, 16:54 | ||
Но, вобще говоря, так дела не делаются |
| Автор: feodorv 27.9.2013, 17:14 |
Как "завершить" или как "корректно завершить"? Потому что, действительно, ответом на первый вопрос будет exit или ExitProcess... |
| Автор: volatile 27.9.2013, 20:44 |
судя по названию тему, второе. Корректно завершить, нужно в самих тредах. Для сигнала им, нужно использовать что-то. (зависит от того что эти треды из себя представляют) |
| Автор: akizelokro 30.9.2013, 22:06 |
| Корректно - нужно завершить выполнение всех трёх потоков, управление вернётся в основной поток программы, который создал эти потоки и ожидает их завершения, если нужно выйти и прервать выполнение программы, то взводится флаг экстренного выхода, основной поток считывает его и выходит. Если ждать очень неохота, пока всё это остановится, то взводится флаг, а основной поток постоянно считывает его, и при нахождении этого флага сам останавливает потоки и выходит. Вроде бы так (надо быть уверенным, что потоки не вылетят в "undefined behaivour" при остановке выполнения, но это уже мелочи). |