Вопрос

Мне нужны все мои темы, чтобы периодически проверять, что они все равно должны работать, чтобы они могли самозавернуться, когда программа заканчивается. Для всех, кроме одного из них, это просто вопрос проверки переменной состояния, но последний - это нить взаимодействия пользователей, а его цикл будет ждать на неопределенный срок на входе пользователя, только проверку переменной состояния, когда пользователь вводит инструкцию Отказ В этот момент программа в любом случае не удается, так как класс не может работать должным образом, когда он не работает. В идеале, хотя я хотел бы не добраться до этого момента.

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

Кроме того, я вижу много упоминаний std :: getline. GetLine, кажется, работает, используете ли я пространство имен или нет. Является одним из псевдонимов другого, а какое правильное использование?

Это было полезно?

Решение

Нет (стандартный) способ установить тайм-аут на std::getline. Отказ В частности, стандартная библиотека C ++ не знает существование потоков

Чтобы ответить на ваш второй вопрос, соответствует стандартам версия std::getline это один в пространстве имен.

Другие советы

Наверное, самый простой способ для вас сделать это, будет вращаться еще одну нить, с единственной целью выполнения getline().

Google возвращается Этот результат, Что дает вам пример, хотя он сильно зависит от Win32. Тем не менее, вы должны быть в состоянии портировать его, к которому вы используете библиотеку потоков.

Если ваши темы не имеют каких-либо очистки, которые им нужно делать, альтернативное решение будет звонить exit Когда вы хотите закончить свой процесс. exit завершит все темы и завершит процесс.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top