当前位置:编程学习 > C#/ASP.NET >>

C# 写定时器(不拖控件)

private Timer loginTimer; //定义一个定时器     这时需要引入命名空间:using System.Timers;
private int loginCouter;   //登陆次数计数器
 
private TimerTest()
{
       if(false)   //此处为伪代码
       {
            //登陆失败
       }
       this.loginCouter = 0;  //登陆次数清0
       this.loginTimer = new System.Timers.Timer()   //给定时器设定属性
       {
             AutoReset = false,      //自动更新为false
             Interval = 200              //200毫秒重启一次定时器
      };
      this.loginTimer.Elapsed += new ElapsedEventHandler(loginTimer_Elapsed);  //注册定时器需要执行的事件
      this.loginTimer.Start();     //启动定时器
}
 
void loginTimer_Elapsed(object sender, ElapsedEventArgs e)     //事件内部写功能
{
            this.loginCouter++;
            if (登陆成功)   //此处为伪代码
            {
                this.Dispatcher.BeginInvoke(new Action(() => {
                    this.ConsoleTextBox.Text = "登陆成功!\n";
                }), null);            //这样写的目的是,为了启动一个线程和别的线程分开(采用多线程)来运行定时器,以不至于由于单线程导致程序卡死  www.zzzyk.com
            }
            else if (this.loginCouter>150)
            {
                this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        this.ConsoleTextBox.Text = "登陆请求超时!\n";
                    }), null);
            }
            else
            {
                this.loginTimer.Start();  //重启定时器
            }
}
作者:haitaoDoit
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,