Pregunta

Necesito todos mis hilos para comprobar periódicamente que todavía deben estar en ejecución, de modo que puedan auto-terminará cuando el final del programa. Para todos, excepto uno de ellos, esto es sólo una cuestión de control de una variable de estado, pero el último es un hilo de la interacción del usuario, y su bucle esperará indefinidamente la entrada del usuario, sólo el control de la variable de estado cuando el usuario introduce una instrucción . En este punto, el programa falla de todos modos ya que la clase no puede funcionar correctamente si no se está ejecutando. Lo ideal sería que, sin embargo, no me gustaría llegar a este punto.

Estoy pensando que la mejor solución, si es posible, es un tiempo de espera en el getline, pero en el caso de que no es posible o una opción buena, estoy abierto a cualquier opción que le permitirá al hilo para terminar ordenadamente .

Como acotación al margen, veo una gran cantidad de menciones de std :: getline. getline parece funcionar si utilizo el espacio de nombres o no. Es uno de un alias de la otra, y que es el apropiado para su uso?

¿Fue útil?

Solución

No hay manera (estándar) para establecer un tiempo de espera en std::getline. En particular, la biblioteca estándar de C ++ no conoce la existencia de hilos

Para responder a su segunda pregunta, la versión compatible con los estándares de std::getline es el que está en el espacio de nombres.

Otros consejos

Probablemente la forma más fácil para usted para hacer esto sería escindir otro hilo, con el único propósito de ejecutar getline().

google devuelve este resultado, que le da un ejemplo, aunque depende en gran medida de Win32. Sin embargo, usted debe ser capaz de portarlo a la que jamás hilo biblioteca que está utilizando.

Si los hilos no tienen ninguna limpieza que tienen que hacer, una solución alternativa sería la de exit llamada cuando usted quiere terminar su proceso. exit terminará todas las discusiones y terminar el proceso.

Es necesario otro hilo a señalar el subproceso de usuario.
La forma de hacerlo dependerá de la librería de hilos que está utilizando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top