Ayuda con Timer C#..

Iniciado por ronald hisp, 24 Abril 2009, 18:51 PM

0 Miembros y 2 Visitantes están viendo este tema.

ronald hisp

Este es parte de mi codigo;
- De un login que al tercer intento se bloquee y por un tiempo y si en la cuarta falla se cierra el programa.


using System.Timers;  //para usar el timer

private void btnAceptar_Click(object sender, EventArgs e)  //boton aceptar
        {
            if (i == 3)
            {   MessageBox.Show("El sistema se bloqueo \n espere 10 seg. para su ultimo intento");
                txtPass.Visible = false; // aqui oculto los textbox
                txtUser.Visible = false; // aqui oculto los textbox
                System.Timers.Timer tm = new System.Timers.Timer();
             
                tm.Interval = 10000; //aqui que espere 10 segundos
                txtPass.Visible = true; //aqui muestra los textbox
                txtUser.Visible = true;
               
               //mi error esta en el timer esa es mi gran duda...
              // que bloquee por 10 seg los textbox..
           
            frmOpcionesC frm = new frmOpcionesC();
            string aux = txtUser.Text;
            if (txtUser.Text == "admin" && txtPass.Text == "admin")
            {
                i =i-1;
                MessageBox.Show("Bienvenido " + aux);
                frm.Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("El usuario o password no existen verifique");
                txtUser.Text = "";
                txtPass.Text = "";
                txtUser.Focus();
            }
            if (i == 4)
            {
                Application.ExitThread();
                MessageBox.Show("4er Intento Cerrando...");
            }
            i++;
        }

//antemano gracias...x sus ayudas..
//

Novlucker

Y que tal un simple sleep  :huh:

Código (csharp) [Seleccionar]
System.Threading.Thread.Sleep(10000)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

ronald hisp

#2
ahorita lo voy aprobar..
System.Threading.Thread.Sleep(1000);

----------------------------------
si funciono:
gracias... por sacarme de esa duda..
se agradece...
;D :D ;D :D

----------------------------------
evento tick:
gracias ... veo que ay varias formas para hacer esto .....gracias.
:D ;D
-------------------------------
ok. gracias por la aclaracion...
-------------------------------


KJD

El tiemer tiene un evento tick que se ejecuta cuando el intervalo ya paso, ahi puedes habilitar de nuevo los textbox.
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

Novlucker

Como dice KJD, con el timer también es posible, pero deberías de estar iniciandolo, ejecutando lo que quieres y parandolo, creo que para intervalos tan cortos el sleep es mejor  :D

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

KJD

Yo usaria el timer ya que con el sleep tuve problemas de cuelgue, si queira mover la pantalla o minimizarla la aplicacion se me colgaba.  :-\
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

MANULOMM

Obvio que con el Sleep asi nada mas se va a colgar la interfaz pues el sleep lo que hace es parar el hilo principal de la aplicacion, el timer inicia un segundo hilo en el procesador. Realmente no es un problema es solo cuestion de saber cuando usar los recursos apropiados.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


410n5o

Buenas a todos,
Disculpen mi interrupción en este post pero ya que estan en el tema que me preocupa.
Estoy haciendo una aplicación que obtiene caracteristicas de una máquina como uso del cpu, uso de ram, porcentaje libre de discos duros, etc. Ya tengo la libreria hecha para obtener eso, hasta ahi bien, pero lo que pasa es que esa aplicacion llama a un servicio web que guarda esos datos en un archivo en otra máquina claro, pero necesito creo que es un Timer para actualizar esos datos una vez por minuto, o sea que tendria que obtener los datos de la máquina y luego llamar al servicio web para que guarde los datos, eso cada minuto mientras está la aplicacion ejecutándose. He leido sobre Timer pero no sé como utilizarlo bien, cómo deberia hacer para que el método se llame cada minuto?
Les agradeceria mucho si me ayudan

KJD

Me sorprende que hayas creado una libreria que haga todo eso y que no sepas usar un timer  :xD pero bueno a todos nos paso. Fijate aca http://msdn.microsoft.com/es-ar/library/system.timers.timer.aspx
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

410n5o

Jaja la verdad no fue tan difícil hacer la libreria. Gracias por la ayuda pero mi problema principal es que dentro de un evento "private static void OnTimedEvent(object source, ElapsedEventArgs e)" no puedo llamar a un método, lo que necesito es que el método para obtener componentes se llame cada minuto, habrá alguna otra manera de hacerlo?
Gracias