La Web del Programador: Comunidad de Programadores
 
    Pregunta:  52441 - COMO PARAR LA EJECUCIòN.
Autor:  jorge gal
Hola a todos.
Estoy haciendo un programa que corre indefinidamente haciendo una tarea.
Lo que quiero es ofrecerle al usuario la forma de detenerlo cuando este desee. Todas las funciones tipo getchar o getche esperan que el usuario de un enter. Yo quiero que el programa este corriendo y ofrezca cada tantos segundos la opcion de parar pero que si no la toma el usuario el programa siga corriendo. ¿me pueden dar una mano?

  Respuesta:  josema
Tienes varias opciones y todas dependen del sistema operativo. De cuento dos de ellas.

En MSDos hay una funcion es que kbhit, en la libreria estandard conio.h.

esta funcion devuelve 0 si no se ha pulsado ninguna tecla o distinto de cero si se ha pulsado.

Si metes tu código en un buble infinito, la estructura podría ser algo así.

while ( bProcesar )
{
.... tu codigo ...

if ( kbhit() )
{ // se pulso una tecla.
c = getch(); // sacar el codigo de la tecla
if ( c = 'a' ) bProcesar = false;
}
}

Si hablamos aplicaciones para windows o sistemas operativos multitarea, el proceso pasa por hacer una programación multihilo(multithread). Mientras tu proceso se ejecuta en un hilo, hay otro hilo que está leyendo las acciones del usuario.

Espero haberte ayudado.