亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

.NET中的Timer類型用法詳解

2020-01-24 02:29:16
字體:
來源:轉載
供稿:網友

在.NET FrameWork中有多個Timer,那么怎么根據實際情況進行選擇確實是一個問題。

總體而言,計時器共有以下四種:

多線程計時器:

1 System.Threading.Timer
2 System.Timers.Timer

特殊環境的單線程計時器:

1 System.Windows.Forms.Timer(使用環境:Windows Forms Timer)
2 System.Windows.Threading.DispatcherTimer( 使用環境:WPF timer);

單線程計時器比較安全, 因為運行在主線程中,對于更新 Windows Forms或者WPF 中控件的值 這種簡單任務來說更方便。 例如時鐘和計數顯示。否則,你需要一個多線程計時器。

原理:單線程使用消息循環機制,這意味著Tick事件總是在創建timer的那個線程上執行,同時也意味著如果上一個Tick消息還未被處理,即使時間超過了間隔時間,在消息循環中也只存在一個Tick消息。

示例代碼如下:

public static void Main(){System.Windows.Forms.Timer tmr = new System.Windows.Forms.Timer();tmr.Tick += new EventHandler(tmr_Tick);tmr.Start();//開始計時器tmr.Stop();//停止計時器tmr.Enabled =true;//設置或獲取計時器是否正在運行tmr.Interval = 10000; //計時器的時間間隔 (10秒),以毫秒為單位,在計時器事件tmr_Tick開始10秒后進行第一次執行.}void tmr_Tick(object sender, EventArgs e){  //到達指定時間間隔應處理的代碼}

當tmr_Tick執行時間較長,UI界面會卡頓,如下圖所示:

多線程計時器比較強大,精確,而且可擴展性強;使用多線程計時器時不會對主線程造成任何影響,也就不會出現上面圖片顯示的情況.

原理:多線程計時器使用回調方法并由線程池線程提供服務.當計時器間隔小于執行此回調(Tick方法)所需的時間時,回調可以同時在多個線程中執行,比如當計時器的時間間隔是5秒,但過了5秒后,上一次的回調仍未完成,此時新的回調將在新的線程中運行.在開發中需要避免此種情況。

System.Threading.Timer是最簡單的多線程計時器。
只要在使用 System.Threading.Timer,就必須保留對它的引用。對于任何托管對象,如果沒有對 Timer 的引用,計時器會被垃圾回收。即使 Timer 仍處在活動狀態,也會被回收。
 
在下面的例子中,計時器在5秒后開始定時1秒的調用Tick方法。

public static void Main(){int duetime = 5000;int period = 1000;System.Threading.Timer timer = new System.Threading.Timer(Tick,"給Tick方法傳的參數,object類型",duetime ,period );duetime = 10000;period = 2000;//修改等待時間為10秒和間隔時間為2秒timer.Change(duetime, period);//取消計時器timer.Dispose();}static void Tick(object data){ Console.WriteLine(data);//如果此時需要訪問控件,因為回調線程跟主線程是完全不同的兩個線各,因此需要使用Control.Invoke或BeginInvoke方法,來實現,例如:this.BeginInvoke((MethodInvoker)delegate(){  this.lbl_w.Text = data.ToString (); }); }

.net framework提供的另一個計時器System.Timers.Timer.簡單的對System.Threading.Timer進行了包裝。增加了下面幾個特性:

1.實現了Component,所以可以在設計器顯示。
2.用Interval屬性代替代替Change方法
3.添加了Elapsed事件, 啟動和停止timer的Start和Stop方法。
4.添加了AutoReset屬性 默認為True 來指定是否在每次指定的間隔結束時引發Elapsed事件,還是僅運行一次Elapsed事件就結束

示例代碼如下:

public static void MainThread(){ System.Timers.Timer Timer tmr=new System.Timers.Timer(); tmr.Interval=500; tmr.Elapsed+=newElapsedEventHandler(tmr_Elapsed); tmr.AutoReset = false; tmr.Start(); Console.ReadLine(); tmr.Stop(); Console.ReadLine(); tmr.Dispose();}void tmr_Elapsed(objectsender,ElapsedEventArgse){ Console.WriteLine("Tick...");}

結論:
WPF和Windows Forms的單線程計時器都非常適合小任務,尤其是界面更新的任務。例如時鐘和計數顯示。
否則,你只能使用多線程計時器,對于使用哪一種多線程計時器,可根據自己的需要來決定

希望本文所述對大家掌握.net中timer的用法有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成啪啪网站| 国产一区二中文字幕在线看| 91tv亚洲精品香蕉国产一区7ujn| 伊人成人开心激情综合网| 国产日韩欧美在线观看| 粉嫩老牛aⅴ一区二区三区| 亲子乱一区二区三区电影| 精品久久久一区| 国产亚洲精品久久久优势| 国产精品69久久久久| 久久免费视频这里只有精品| 久久亚洲国产精品| 中文字幕自拍vr一区二区三区| 精品久久久国产精品999| 亚洲精品一区久久久久久| 色综合久久天天综线观看| 黄色一区二区在线| 欧美情侣性视频| 91人人爽人人爽人人精88v| 日韩美女激情视频| 国产一区二区免费| 成人av资源在线播放| 欧美日韩一区二区免费视频| 丝袜亚洲欧美日韩综合| 亚洲第一av在线| 在线成人中文字幕| 国语自产在线不卡| 91夜夜揉人人捏人人添红杏| 国产精品尤物福利片在线观看| 久久韩剧网电视剧| 中日韩美女免费视频网址在线观看| 国产在线视频欧美| 日韩精品亚洲精品| 自拍偷拍亚洲区| 亚洲欧洲午夜一线一品| 91国产视频在线播放| 中文字幕精品av| 在线视频中文亚洲| 欧美精品久久久久久久久久| 国产精品视频大全| 一区二区亚洲欧洲国产日韩| 国产午夜精品麻豆| 日日摸夜夜添一区| 欧美激情一区二区久久久| 国产视频亚洲精品| 欧美成年人视频网站| 国产精品视频大全| 亚洲色图综合久久| 国产美女久久精品| 热门国产精品亚洲第一区在线| 久久伊人免费视频| 日韩国产中文字幕| 国产成人精品日本亚洲专区61| 欧美日韩一区二区免费视频| 1769国内精品视频在线播放| 精品偷拍一区二区三区在线看| 欧美黑人一区二区三区| 中文字幕日韩欧美精品在线观看| 日日噜噜噜夜夜爽亚洲精品| 久久97久久97精品免视看| 国产69精品久久久久99| 蜜臀久久99精品久久久久久宅男| 亚洲第一区在线| 在线观看国产精品日韩av| 亚洲免费一级电影| 欧美巨猛xxxx猛交黑人97人| 久久久电影免费观看完整版| 日韩在线免费视频| 国产精品久久久久免费a∨大胸| 国产精品白嫩美女在线观看| 欧美性猛xxx| 国产精品自产拍高潮在线观看| 国产91精品网站| 一区二区三区黄色| 久久亚洲精品国产亚洲老地址| 国产精品热视频| 91精品在线观| 国产精品欧美亚洲777777| 久久久www成人免费精品| 亚洲最大福利视频| 欧美成人国产va精品日本一级| 久久久久久免费精品| 亚洲精品国精品久久99热| 成人激情春色网| 亚洲图片欧美日产| 亚洲视频免费一区| 国产精品久久久久久影视| 亚洲最大av在线| 日韩在线观看电影| 国产精品中文字幕在线| 久久久久久香蕉网| 国产亚洲精品一区二区| 国产精品亚洲自拍| 亚洲黄色在线观看| 亚洲区在线播放| 狠狠做深爱婷婷久久综合一区| 91视频88av| 欧美成人免费网| 97av在线播放| 日韩成人在线电影网| 日韩欧美成人网| 91伊人影院在线播放| 色综合久综合久久综合久鬼88| 蜜月aⅴ免费一区二区三区| 欧美三级欧美成人高清www| 亚洲欧美成人在线| 欧美俄罗斯乱妇| 亚洲人成电影网站色www| 欧美另类69精品久久久久9999| 亚洲摸下面视频| 夜夜嗨av一区二区三区四区| 亚洲欧美日韩精品久久奇米色影视| 日韩中文字在线| 国产精品草莓在线免费观看| 精品久久久久久久大神国产| 91产国在线观看动作片喷水| 国产精品视频成人| 性色av一区二区三区| 欧美电影免费观看高清| 精品伊人久久97| 日本精品免费一区二区三区| 免费91麻豆精品国产自产在线观看| 亚洲国产中文字幕久久网| 欧美刺激性大交免费视频| 久久久久国产精品免费| 午夜精品久久久久久久男人的天堂| 国产91免费观看| 九九热这里只有在线精品视| 久久国内精品一国内精品| 正在播放欧美视频| 欧美激情女人20p| 国产成人激情视频| 日韩av免费一区| 国产精品第一视频| 日韩中文字幕在线观看| 成人免费大片黄在线播放| 国产精品成人一区| 欧美最猛性xxxxx免费| 国产ts人妖一区二区三区| 91精品国产自产在线| 国产精品2018| 国产剧情日韩欧美| 久久久国产精品一区| 亚洲精品国产拍免费91在线| 成人激情视频网| 国产成人精品在线播放| 日韩中文字幕免费| 久久亚洲国产精品| 日韩**中文字幕毛片| 国产欧美一区二区三区四区| 黑人巨大精品欧美一区二区免费| 久久久av电影| 亚洲精品99久久久久中文字幕| 亚洲国产成人精品女人久久久| 欧美寡妇偷汉性猛交| 欧美日韩国产专区| 蜜臀久久99精品久久久无需会员| 久久精品一区中文字幕| 波霸ol色综合久久| 韩国一区二区电影| 国产一区二区三区三区在线观看| 日韩福利伦理影院免费| 欧美成人精品不卡视频在线观看| 欧美午夜性色大片在线观看|