日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
講解VB.NET定時器中System.Timers.Timer類

在向大家詳細(xì)介紹VB.NET定時器 之前,首先讓大家了解下VB.NET,然后全面介紹 System.Timers.Timer 。VB.NET框架文檔指出System.Timers.Timer類是一個VB.NET定時器中服務(wù)定時器,是為多線程環(huán)境進行設(shè)計和優(yōu)化。該定時器類的實例能夠被多個線程安全地訪問。不像System.Windows.Forms.Timer,System.Timers.Timer缺省的,將在一個工作者線程上調(diào)用你的定時器事件處理函數(shù),該工作者線程是從公共語言運行時(CLR)線程池中獲得。這意味著在你的逝去的時間處理函數(shù)代碼中必須遵從Win32編程的黃金規(guī)則:除了創(chuàng)建該控件實例的線程之外,一個控件的實例從來不被任何其它的線程所訪問。

成都創(chuàng)新互聯(lián)公司主營翔安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),翔安h5微信小程序開發(fā)搭建,翔安網(wǎng)站營銷推廣歡迎翔安等地區(qū)企業(yè)咨詢

VB.NET System.Timers.Timer提供了一個簡單的方法處理這樣的困境——暴露一個公共的SynchronizingObject屬性。把該屬性設(shè)置為一個窗體實例(或者窗體上的一個控件)將保證你的事件處理函數(shù)代碼運行在SynchronizingObject被實例化的同一個線程里。

如果你使用了Visual Studio .NET工具箱,Visual Studio .NET自動的設(shè)置SynchronizingObject屬性為當(dāng)前的窗體實例。首先它設(shè)定該定時器的SynchronizingObject屬性使其在功能上同System.Windows.Forms.Timer類一樣。對于大部分功能,的確是這樣。當(dāng)操作系統(tǒng)通知System.Timers.Timer類所允許的定時時間已過去,定時器使用SynchronizingObject.Begin.Invoke方法在一個線程上去執(zhí)行事件委托,該線程是創(chuàng)建SynchronizingObject的線程。事件處理函數(shù)將被阻塞直到UI線程能夠處理它。然而不像System.Windows.Forms.Timer類一樣,該事件最終仍然能夠被引發(fā)。像你在Figure 2中看到的,當(dāng)UI線程不能夠處理時System.Windows.Forms.Timer不會引發(fā)事件,可是當(dāng)UI線程可用時System.Timers.Timer卻會排隊等候處理。

正如我早先提到的,VB.NET System.Timers.Timer類成員非常類似與System.Windows.Forms.Timer。最大的區(qū)別就在與System.Timers.Timer類是對Win32可等待定時對象的一個包裝,并在工作者線程上產(chǎn)生一個時間片消失事件而不是在UI線程上產(chǎn)生一個時間標(biāo)記事件。時間片消失事件必須與一個同ElapsedEventHandler委托像匹配的事件處理函數(shù)相連接。事件處理函數(shù)接受一個ElapsedEventArgs類型的參數(shù)。

除了標(biāo)準(zhǔn)的EventArgs成員,ElapsedEventArgs類暴露了一個公共的SignalTime屬性,它包含了一個精確的VB.NET定時器時間片消失的時間。因為這個類支持不同線程的訪問,除了時間消失事件所在的線程,應(yīng)該相信它的Stop方法能夠被其它線程所調(diào)用。這會潛在的導(dǎo)致消失事件被引發(fā)即使其Stop方法已經(jīng)被調(diào)用。你可以把SignalTime和Stop方法調(diào)用的時間進行比較來解決這個問題。

System.Timers.Timer也提供了AutoReset屬性來決定當(dāng)時間片消失事件引發(fā)后是繼續(xù)進行還是只這一次。要記住在定時器開始后重設(shè)間隔屬性會導(dǎo)致當(dāng)前計數(shù)為0。比如,設(shè)置了一個5秒的間隔,在間隔被改變?yōu)?0秒時3秒已經(jīng)過去了,那么下一個定時器事件將會在上一個定時器事件13秒后發(fā)生。


名稱欄目:講解VB.NET定時器中System.Timers.Timer類
URL分享:http://m.5511xx.com/article/djihipd.html