SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: Leugim_ZerO en Lunes 25 de Septiembre de 2006, 18:09

Título: Como Realizo Interrupciones En Funciones??
Publicado por: Leugim_ZerO en Lunes 25 de Septiembre de 2006, 18:09
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...
Título: Re: Como Realizo Interrupciones En Funciones??
Publicado por: Eternal Idol en Lunes 25 de Septiembre de 2006, 18:53
Pasa el codigo de OnEmpezar a una funcion de tipo hilo y en OnEmpezar crea el mismo (CreateThread).
Título: Re: Como Realizo Interrupciones En Funciones??
Publicado por: diego.martinez en Martes 26 de Septiembre de 2006, 17:23
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.