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

首頁 > 編程 > 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,);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
精品国内亚洲在观看18黄| 日本高清视频精品| 91免费视频国产| 亚洲欧美综合图区| 国产精品视频久| 日本道色综合久久影院| 欧美精品免费看| 97国产精品人人爽人人做| 亚洲一区二区精品| 97视频在线观看成人| 午夜精品一区二区三区在线视| 午夜精品久久久久久久久久久久久| 国产中文字幕日韩| 国产丝袜一区视频在线观看| 丝袜亚洲欧美日韩综合| 久久成人精品一区二区三区| 久色乳综合思思在线视频| 国产精品户外野外| 欧美激情在线观看视频| 美女视频黄免费的亚洲男人天堂| 亚洲精品久久久久久久久久久| 91在线直播亚洲| 欧美另类极品videosbestfree| 亚洲最新在线视频| 精品久久久久久| 国产91ⅴ在线精品免费观看| 久热国产精品视频| 97成人精品区在线播放| 国产69精品久久久| 色小说视频一区| 国产精品777| 亚洲国产中文字幕久久网| 2019中文字幕在线观看| 黄网站色欧美视频| 亚洲另类欧美自拍| 亚洲精品午夜精品| 亚洲男人天堂网| www国产亚洲精品久久网站| 国产精品美女www爽爽爽视频| 久久视频在线播放| 欧美性极品xxxx做受| 亚洲欧美日韩中文视频| 国产综合福利在线| 日韩网站免费观看高清| 国产精品日韩在线一区| 国产精品久久久久免费a∨| 色777狠狠综合秋免鲁丝| 久久久国产精彩视频美女艺术照福利| 久久久久久久久久国产| 亚洲理论在线a中文字幕| 丝袜一区二区三区| 26uuu日韩精品一区二区| 久久久久久久香蕉网| 日韩欧美精品免费在线| 日韩69视频在线观看| 国产午夜精品视频| 欧美激情视频免费观看| 日韩在线视频一区| 欧美在线www| 免费av在线一区| 精品二区三区线观看| 成人午夜两性视频| 国产精品免费久久久| 91免费看片网站| 精品亚洲精品福利线在观看| 日韩精品欧美国产精品忘忧草| 欧美成人午夜激情| 九九热这里只有精品免费看| 日韩大片免费观看视频播放| 国产精品xxxxx| 国产精品久久一区| 国产精品久久久久秋霞鲁丝| 精品久久久久久久久久| 久久av中文字幕| 隔壁老王国产在线精品| 中国日韩欧美久久久久久久久| 精品香蕉在线观看视频一| 欧美制服第一页| 国产一区二区丝袜高跟鞋图片| 永久555www成人免费| 日韩欧美在线中文字幕| 成人亚洲综合色就1024| 日韩在线欧美在线国产在线| 91精品国产高清久久久久久久久| 大桥未久av一区二区三区| 日韩av一区在线观看| 综合网日日天干夜夜久久| 久久综合免费视频影院| 2019国产精品自在线拍国产不卡| 一区二区三区回区在观看免费视频| 日韩亚洲第一页| 国产精品高潮呻吟久久av黑人| 国产精品久久久久久久7电影| 午夜精品一区二区三区在线| 欧美午夜片在线免费观看| 欧美性猛交xxxx乱大交3| 亚洲一品av免费观看| 亚洲免费一级电影| 日韩福利在线播放| 欧美精品在线免费播放| 亚洲色图狂野欧美| 日本精品一区二区三区在线播放视频| 国产精品久久久av久久久| 国产精品福利在线观看| 一区二区三区视频在线| 欧美猛少妇色xxxxx| 欧美精品电影免费在线观看| 欧美在线免费观看| 欧美亚洲国产精品| www.久久撸.com| 亚洲电影免费观看高清完整版| 亚洲成人av片在线观看| 日韩欧美精品在线观看| 91国产中文字幕| 亚洲欧美在线播放| 国产精品美女久久久久av超清| 久久久噜噜噜久久久| 日韩精品中文字幕视频在线| 国产成人aa精品一区在线播放| 国产99久久精品一区二区永久免费| 久久亚洲影音av资源网| 成人在线视频福利| 精品福利在线观看| 国产在线高清精品| 色偷偷88888欧美精品久久久| 2019中文字幕在线免费观看| 亚洲精品成a人在线观看| 国产日韩欧美中文| 欧美另类极品videosbest最新版本| 91九色精品视频| 91精品成人久久| 亚洲欧美在线第一页| 成人激情视频小说免费下载| 久久精品国产亚洲精品| 欧美视频中文字幕在线| 日韩精品免费综合视频在线播放| xxxx性欧美| 日韩一区二区三区国产| 久久99亚洲精品| 国产精品久久久久9999| 欧美激情在线观看视频| 亚洲精品一二区| 亚洲色图在线观看| 国产精品丝袜久久久久久不卡| 欧美成人精品在线播放| 韩国19禁主播vip福利视频| 久久免费高清视频| 日韩av影视综合网| 欧美精品激情在线| 91亚洲精品久久久| 国产视频精品xxxx| 欧美精品国产精品日韩精品| 亚洲人成网站免费播放| 韩国美女主播一区| 91精品国产91久久久| 97精品视频在线观看| 精品女厕一区二区三区| 久久久之久亚州精品露出| 国产精品青草久久久久福利99| 久久久国产精彩视频美女艺术照福利| 国产精品美女久久| 成人中文字幕+乱码+中文字幕| 国产亚洲欧洲黄色| www.亚洲一二|