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.2cto.com
}
else if (this.loginCouter>150)
{
this.Dispatcher.BeginInvoke(new Action(() =>
{
this.ConsoleTextBox.Text = "登陸請求超時!\n";
}), null);
}
else
{
this.loginTimer.Start(); //重啟定時器
}
}
作者:haitaoDoit