C#中timer類的用法總結(jié)
C#中timer類的用法
關(guān)于C#中timer類 在C#里關(guān)于定時(shí)器類就有3個(gè)
1.定義在System.Windows.Forms里
2.定義在System.Threading.Timer類里
3.定義在System.Timers.Timer類里
System.Windows.Forms.Timer是應(yīng)用于WinForm中的,它是通過Windows消息機(jī)制實(shí)現(xiàn)的,類似于VB或Delphi中的Timer控件,內(nèi)部使用API SetTimer實(shí)現(xiàn)的。它的主要缺點(diǎn)是計(jì)時(shí)不精確,而且必須有消息循環(huán),Console Application(控制臺(tái)應(yīng)用程序)無法使用。
System.Timers.Timer和System.Threading.Timer非常類似,它們是通過.NET Thread Pool實(shí)現(xiàn)的,輕量,計(jì)時(shí)精確,對(duì)應(yīng)用程序、消息沒有特別的要求。System.Timers.Timer還可以應(yīng)用于WinForm,完全取代上面的Timer控件。它們的缺點(diǎn)是不支持直接的拖放,需要手工編碼。
例:
使用System.Timers.Timer類
//實(shí)例化Timer類,設(shè)置間隔時(shí)間為10000毫秒;
System.Timers.Timer t = new System.Timers.Timer(10000);
//到達(dá)時(shí)間的時(shí)候執(zhí)行事件;
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);
t.AutoReset = true;//設(shè)置是執(zhí)行一次(false)還是一直執(zhí)行(true);
t.Enabled = true;//是否執(zhí)行System.Timers.Timer.Elapsed事件;
====================================
自己寫的一個(gè)用System.Timer類的方法
public class BF_CheckUpdate
{
private static object LockObject = new Object();
// 定義數(shù)據(jù)檢查Timer
private static Timer CheckUpdatetimer = new Timer();
// 檢查更新鎖
private static int CheckUpDateLock = 0;
///
/// 設(shè)定數(shù)據(jù)檢查Timer參數(shù)
///
internal static void GetTimerStart()
{
// 循環(huán)間隔時(shí)間(10分鐘)
CheckUpdatetimer.Interval = 600000;
// 允許Timer執(zhí)行
CheckUpdatetimer.Enabled = true;
// 定義回調(diào)
CheckUpdatetimer.Elapsed += new ElapsedEventHandler(CheckUpdatetimer_Elapsed);
// 定義多次循環(huán)
CheckUpdatetimer.AutoReset = true;
}
///
/// timer事件
///
///
///
private static void CheckUpdatetimer_Elapsed(object sender, ElapsedEventArgs e)
{
// 加鎖檢查更新鎖
lock (LockObject)
{
if (CheckUpDateLock == 0) CheckUpDateLock = 1;
else return;
}
//More code goes here.
//具體實(shí)現(xiàn)功能的方法
Check();
// 解鎖更新檢查鎖
lock (LockObject)
{
CheckUpDateLock = 0;
}
}
}
- C# WinForm-Timer控件的使用
- c# 區(qū)分幾種定時(shí)器(timer)
- C#用timer實(shí)現(xiàn)背單詞小程序
- 詳解C#中的System.Timers.Timer定時(shí)器的使用和定時(shí)自動(dòng)清理內(nèi)存應(yīng)用
- C#中Timer使用及解決重入問題
- [C#].NET中幾種Timer的使用實(shí)例
- C#中自定義高精度Timer定時(shí)器的實(shí)例教程
- 詳解C#中的定時(shí)器Timer類及其垃圾回收機(jī)制
- C#自定義基于控制臺(tái)的Timer實(shí)例
- C#中timer定時(shí)器用法實(shí)例
- C#使用timer實(shí)現(xiàn)的簡(jiǎn)單鬧鐘程序
- C#使用timer定時(shí)在屏幕上輸出信息的方法
- C#中的Timer和DispatcherTimer使用實(shí)例
- C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
- c#各種Timer類的區(qū)別與用法介紹
- C#中的三種定時(shí)計(jì)時(shí)器Timer用法介紹
相關(guān)文章
C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器
這篇文章介紹了C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06C#實(shí)現(xiàn)的一款比較美觀的驗(yàn)證碼完整實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)的一款比較美觀的驗(yàn)證碼,以完整實(shí)例形式分析了C#生成驗(yàn)證碼與前端調(diào)用驗(yàn)證碼的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-06-06Unity游戲開發(fā)中的中介者模式的應(yīng)用與實(shí)現(xiàn)
中介者模式是Unity游戲開發(fā)中常用的設(shè)計(jì)模式之一,用于減少對(duì)象之間的直接耦合,通過引入中介者來協(xié)調(diào)對(duì)象之間的交互。通過中介者模式,游戲?qū)ο罂梢愿屿`活地進(jìn)行交互和協(xié)同工作,降低系統(tǒng)復(fù)雜度,使代碼更加易于維護(hù)和擴(kuò)展2023-05-05C#難點(diǎn)逐個(gè)擊破(2):out返回參數(shù)
之前提到ref是將原方法中的參數(shù)影響的結(jié)果返回到調(diào)用它的方法中,out與ref類似,相比之下,ref傳遞參數(shù)的地址,out是返回值。2010-02-02