System.Timers.Timer t = new System.Timers.Timer(10000);
//實例化Timer類,設置間隔時間為10000毫秒;
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);
//到達時間的時候執行事件;
t.AutoReset = true;
//設置是執行一次(false)還是一直執行(true);
t.Enabled = true;
//需要調用 timer.Start()或者timer.Enabled = true來啟動它, timer.Start()的內部原理還是設置timer.Enabled = true;
//調用 timer.Stop()或者timer.Enabled = false來停止引發Elapsed事件, timer.Stop()的內部原理還是設置timer.Enabled = false,最重要的是timer.Enabled = false后會取消線程池中當前等待隊列中剩余任務的執行。
舉例:
class timerExample
{
int num = 0;
//IUSObject blinkObj=null;
System.Timers.Timer t = null;
public static void Init()
{
//if(blinkObj !=null)
//{
// num = 1;
// blinkObj.Visible = true;
// t.Enable = false;
//}
//blinkObj = new IUSObject();
t = new System.Timers.Timer(1000);
t.Elapsed += new System.Timers.ElapsedEventHandler(willDo);
t.AutoReset = true;
t.Enabled = true;
}
public static void willDo(object sender, System.Timers.ElapsedEventArgs e)
{
//blinkObj.Visible = blinkObj.Visible == true ? false : true;
MessageBox.Show("每隔1000毫秒執行一次");
if(num>=6)
{
System.Timers.Timer t = (System.Timers.Timer)sender;
t.Enable = false;
}
num += 1;
}
}
說明:若要指定timer的循環次數,需通過num輔助 執行,多次執行Init時,需先將timer的elapsed事件停止(即隱去的內容),然后再次綁定
隨筆記錄一下,若能幫到大家,很榮幸,幫不到也莫責怪。