Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/06/2007, 09:29
mat30
 
Fecha de Ingreso: junio-2007
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Multitarea en C++

Seguro que lo que voy a preguntar está en google, pero es que no se cómo buscarlo. Bien mi problema es el siguiente:

1 - Tengo un botón en GTK+ (a través de la interfaz gtkmm) que al que le he conectado dos señales, una cuando se pulsa y otra cuando se libera.

2 - Cuando se pulse el botón, quiero, desde un archivo de texto que ya tengo cargado en memoria, que se muestre un línea, espere unos segundos y muestra la siguiente y así sucesivamente en un Label.

3 - Cuando se libere el botón quiero que se cesen de mostrar las líneas.

Sería algo así como:

Código:
bool ciertaVariable;

void botonPulsado()
{
  ciertaVariable = true;
  while (ciertaVariable)
  {
       label.set_text(siguienteLinea());
       sleep(1);
   }
}

void botonLiberado()
{
  ciertaVariable = false;
}
El problema de este código es que entra en un bucle infinito y la señal del botón liberado no llega adecuadamente a la función que lo maneja, botonLiberado.

¿Alguien sabe cómo hacer que se ejecute el bucle, pero que no frene la ejecución del programa?

Un saludo.

P.D.: Espero haberme explicado bien....