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

首頁 > 編程 > C# > 正文

[C#].NET中幾種Timer的使用實例

2020-01-24 00:53:07
字體:
來源:轉載
供稿:網友

這篇博客將梳理一下.NET中4個Timer類,及其用法。

1. System.Threading.Timer

public Timer(TimerCallback callback, object state, int dueTime, int period);

callback委托將會在period時間間隔內重復執行,state參數可以傳入想在callback委托中處理的對象,dueTime標識多久后callback開始執行,period標識多久執行一次callback。

using System.Threading;// System.Threading.TimerTimer timer = new Timer(delegate{ Console.WriteLine($"Timer Thread: {Thread.CurrentThread.ManagedThreadId}"); Console.WriteLine($"Is Thread Pool: {Thread.CurrentThread.IsThreadPoolThread}"); Console.WriteLine("Timer Action.");},null,2000,1000);Console.WriteLine("Main Action.");Console.WriteLine($"Main Thread: {Thread.CurrentThread.ManagedThreadId}");Console.ReadLine();

Timer回掉方法執行是在另外ThreadPool中一條新線程中執行的。

2. System.Timers.Timer

System.Timers.Timer和System.Threading.Timer相比,提供了更多的屬性,

Interval  指定執行Elapsed事件的時間間隔;

Elapsed  指定定期執行的事件;

Enabled  用于Start/Stop Timer;

Start    開啟Timer

Stop    停止Timer

System.Timers.Timer timer = new System.Timers.Timer();timer.Interval = 500;timer.Elapsed += delegate{ Console.WriteLine($"Timer Thread: {Thread.CurrentThread.ManagedThreadId}"); Console.WriteLine($"Is Thread Pool: {Thread.CurrentThread.IsThreadPoolThread}"); Console.WriteLine("Timer Action"); timer.Stop();};timer.Start();Console.WriteLine("Main Action.");Console.WriteLine($"Main Thread: {Thread.CurrentThread.ManagedThreadId}");Console.ReadLine();

Timer Elapsed定期任務是在ThreadPool的線程中執行的。

3. System.Windows.Forms.Timer

Interval  指定執行Elapsed事件的時間間隔;

Tick       指定定期執行的事件;

Enabled  用于Start/Stop Timer;

Start    開啟Timer

Stop    停止Timer

使用System.Windows.Forms.Timer來更新窗體中Label內時間,

using System.Windows.Forms;public Form1(){ InitializeComponent(); this.Load += delegate {  Timer timer = new Timer();  timer.Interval = 500;  timer.Tick += delegate  {   System.Diagnostics.Debug.WriteLine($"Timer Thread: {System.Threading.Thread.CurrentThread.ManagedThreadId}");   System.Diagnostics.Debug.WriteLine($"Is Thread Pool: {System.Threading.Thread.CurrentThread.IsThreadPoolThread}");   this.lblTimer.Text = DateTime.Now.ToLongTimeString();  };  timer.Start();  System.Diagnostics.Debug.WriteLine($"Main Thread: {System.Threading.Thread.CurrentThread.ManagedThreadId}"); };}

Timer Tick事件中執行的事件線程與主窗體的線程是同一個,并沒有創建新線程(或者使用ThreadPool中線程)來更新UI。下面將代碼做一個改動,使用System.Timers.Timer來更新UI上的時間,代碼如下,

public Form1(){ InitializeComponent(); this.Load += delegate {  System.Timers.Timer timer = new System.Timers.Timer();  timer.Interval = 500;  timer.Elapsed += delegate  {   System.Diagnostics.Debug.WriteLine($"Timer Thread: {System.Threading.Thread.CurrentThread.ManagedThreadId}");   System.Diagnostics.Debug.WriteLine($"Is Thread Pool: {System.Threading.Thread.CurrentThread.IsThreadPoolThread}");   this.lblTimer.Text = DateTime.Now.ToLongTimeString();  };  timer.Start();  System.Diagnostics.Debug.WriteLine($"Main Thread: {System.Threading.Thread.CurrentThread.ManagedThreadId}"); };}

很熟悉的一個錯誤。因為Label是由UI線程創建的,所以對其進行修改需要在UI線程中進行。System.Timers.Timer中Elasped執行是在ThreadPool中新創建的線程中執行的。所以會有上面的錯誤。

4. System.Windows.Threading.DispatcherTimer

屬性和方法與System.Windows.Forms.Timer類似。

using System.Windows.Threading;public MainWindow(){ InitializeComponent(); this.Loaded += delegate {  //DispatcherTimer  DispatcherTimer timer = new DispatcherTimer();  timer.Interval = TimeSpan.FromSeconds(1);  timer.Start();  Debug.WriteLine($"Main Thread Id: {Thread.CurrentThread.ManagedThreadId}");  timer.Tick += delegate  {   tbTime.Text = DateTime.Now.ToLongTimeString();   Debug.WriteLine($"Timer Thread Id: {Thread.CurrentThread.ManagedThreadId}");   timer.Stop();  }; };}

DispatcherTimer中Tick事件執行是在主線程中進行的。

使用DispatcherTimer時有一點需要注意,因為DispatcherTimer的Tick事件是排在Dispatcher隊列中的,當系統在高負荷時,不能保證在Interval時間段執行,可能會有輕微的延遲,但是絕對可以保證Tick的執行不會早于Interval設置的時間。如果對Tick執行時間準確性高可以設置DispatcherTimer的priority。例如:

DispatcherTimer timer = new DispatcherTimer(DispatcherPriority.Send);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久婷婷| 久久成人在线视频| 国产成人在线播放| 亚洲免费影视第一页| 日韩黄在线观看| 欧美久久精品午夜青青大伊人| 国产精品久久77777| 欧美日韩在线视频一区| 久久噜噜噜精品国产亚洲综合| 亚洲大胆人体av| 亚洲大胆人体在线| 欧美成aaa人片免费看| 欧美亚洲激情在线| 国产乱人伦真实精品视频| 亚洲欧洲日产国产网站| 久久精品人人爽| 久久天堂av综合合色| 国产欧美韩国高清| 国产成人aa精品一区在线播放| 久久偷看各类女兵18女厕嘘嘘| 亚洲欧洲在线播放| 日韩av在线网址| 中国人与牲禽动交精品| 国产精品女视频| 成人久久久久久久| 中文字幕国产日韩| 97在线视频免费观看| 91av网站在线播放| 一本色道久久88综合亚洲精品ⅰ| 亚洲成年人在线| 蜜臀久久99精品久久久久久宅男| 国产91在线视频| 欧美性xxxxx极品娇小| 久久99精品久久久久久琪琪| 国产精品丝袜久久久久久高清| 91成人国产在线观看| 欧美小视频在线观看| 久久中文字幕一区| 欧美视频二区36p| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产91精品在线观看| 日韩精品亚洲元码| 久久久久久综合网天天| 国产午夜精品理论片a级探花| 亚洲国产精品电影在线观看| 成人午夜在线视频一区| 国产精品爱久久久久久久| 欧美成人精品一区| 国产一区视频在线| 青青草原成人在线视频| 精品国产91久久久| 国产精品444| 97热在线精品视频在线观看| 一区二区三区四区视频| 精品国产老师黑色丝袜高跟鞋| 色综合久久久888| 福利精品视频在线| 欧美精品制服第一页| 久久精品成人一区二区三区| 日韩免费观看视频| 久久97久久97精品免视看| 欧美亚洲日本网站| 国产91网红主播在线观看| 黑丝美女久久久| 欧美成人精品在线播放| 日韩在线观看免费高清| 久久久久久久久综合| 欧美一级大片在线免费观看| 国产主播欧美精品| 欧美一级大片在线免费观看| 91在线看www| 狠狠躁夜夜躁人人爽天天天天97| 亚洲a∨日韩av高清在线观看| 色偷偷88888欧美精品久久久| 久久久中精品2020中文| 一本大道亚洲视频| 欧美丰满少妇xxxx| 亚洲高清av在线| 精品国产一区二区在线| 亚洲国产欧美一区二区三区同亚洲| 日韩精品在线观看一区二区| 成人午夜一级二级三级| 精品中文字幕在线观看| 日韩不卡在线观看| 亚洲欧美精品中文字幕在线| 亚洲国产欧美精品| 日韩亚洲国产中文字幕| 亚洲成人亚洲激情| 欧美大片免费观看在线观看网站推荐| 成人久久久久久久| 午夜精品一区二区三区视频免费看| 亚洲天堂av图片| 精品国产91乱高清在线观看| 成人av.网址在线网站| 国产欧美精品日韩| 亚洲高清色综合| 韩国福利视频一区| 日韩中文字幕在线观看| 亚洲男人天堂2019| 成人激情免费在线| 久久久久国色av免费观看性色| 91精品久久久久久久久久久久久| 亚洲免费影视第一页| 久久久影视精品| 精品国产老师黑色丝袜高跟鞋| 欧美午夜视频在线观看| 日韩精品亚洲精品| 亚洲女人初尝黑人巨大| 午夜欧美大片免费观看| 91久久国产综合久久91精品网站| 欧美日韩美女在线观看| 美女视频黄免费的亚洲男人天堂| 国产欧美一区二区三区在线| 亚洲免费伊人电影在线观看av| 国产专区精品视频| 国产精品免费一区豆花| 国产99视频精品免视看7| xxav国产精品美女主播| 免费99精品国产自在在线| 久久精品久久久久电影| 久久久久国色av免费观看性色| 欧美在线观看一区二区三区| 国产主播喷水一区二区| 欧美丰满老妇厨房牲生活| 亚洲欧美综合v| 亚洲白拍色综合图区| 国产在线精品一区免费香蕉| 色视频www在线播放国产成人| 日韩欧美aaa| 国产精品久久久久久网站| 亚洲无限乱码一二三四麻| 欧美日韩美女在线观看| 国产一区二区三区在线视频| 久久精品国产2020观看福利| 欧美激情一区二区三区在线视频观看| 国产精品久久婷婷六月丁香| 一区二区三区无码高清视频| 欧美日韩性视频| 亚洲韩国欧洲国产日产av| 国产精品成熟老女人| 国产精品激情自拍| 亚洲国产高清高潮精品美女| 海角国产乱辈乱精品视频| 久久国产精品久久精品| 国产精品99久久久久久www| 日韩av在线网| 日韩电影免费观看中文字幕| 久久欧美在线电影| 全亚洲最色的网站在线观看| 韩剧1988免费观看全集| 欧美精品精品精品精品免费| 亚洲石原莉奈一区二区在线观看| 2019中文字幕在线| 色综合久久88色综合天天看泰| 亚洲国产精品久久| 色琪琪综合男人的天堂aⅴ视频| 丝袜美腿亚洲一区二区| 亚洲免费伊人电影在线观看av| 亚洲精品久久久久| 亚洲影院污污.| 在线观看不卡av| 久久国产精品久久久久| 亚洲精品日产aⅴ| 中文字幕在线观看亚洲|