• Domingo 5 de Mayo de 2024, 12:56

Autor Tema:  Como Realizo Interrupciones En Funciones??  (Leído 1092 veces)

Leugim_ZerO

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Como Realizo Interrupciones En Funciones??
« en: Lunes 25 de Septiembre de 2006, 18:09 »
0
hola amigos estoy realizando un programa en VC++, pero me he
encuantrado con un problema, empezemos primero he definido 2 botones
uno de "Empezar" y  Otro de "Detener", el primero me realiza o llama a
una funcion como esta

Dlg::OnEmpezar
{
    operacion=0;
    contador=0;
    do{
          cout<<contador<<endl;
          contador++;
       }while(operacion==0);

}

bueno si se dan cuenta en solo un bucle infinito, que no terminara
nunca y yo quiero realizar una interrupcion de este bucle mediante el
boton "Detener" que modifique la variable global 'operacion=1'

Dlg::OnDetener
{
    operacion=1;
}

intenente realizar eso, primero hice click en el boton "Empezar" y
realizo la funcion normal, pero cuando quise hacer click en el boton
"Detener" no me dejaba, parecia que se colgaba o algo asi.. pude
deducir que el sistema solo le daba prioridad a pa funcion que
realizaba y no dejaba hacer otra cosa hastaa que no terminara el bucle

bueno amigos como soluciono este problema...

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Realizo Interrupciones En Funciones??
« Respuesta #1 en: Lunes 25 de Septiembre de 2006, 18:53 »
0
Pasa el codigo de OnEmpezar a una funcion de tipo hilo y en OnEmpezar crea el mismo (CreateThread).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Como Realizo Interrupciones En Funciones??
« Respuesta #2 en: Martes 26 de Septiembre de 2006, 17:23 »
0
añadele un Sleep(x) de 20, 50 o 100 milisegundos , el programa requerira menos cpu y respondera mejor a la parada. Y si, mejor en un hilo.