C#中的一些延時(shí)函數(shù)
C#一些延時(shí)函數(shù)
sleep延時(shí)方法
System.Threading.Thread.Sleep(1000); //毫秒
實(shí)現(xiàn)的是非獨(dú)占性延時(shí)函數(shù),延時(shí)過(guò)時(shí)中界面仍可響應(yīng)消息:
public static void Delay(int milliSecond) { ? ? int start = Environment.TickCount; ? ? while (Math.Abs(Environment.TickCount - start) < milliSecond)//毫秒 ? ? { ? ? ? ? Application.DoEvents();//可執(zhí)行某無(wú)聊的操作 ? ? } }
關(guān)于Math.Abs()
Environment.TickCount,內(nèi)部API是用DWORD GetTickCount()來(lái)實(shí)現(xiàn)的,該屬性的值從系統(tǒng)計(jì)時(shí)器派生,并以 32 位有符號(hào)整數(shù)的形式存儲(chǔ)。
因此,如果系統(tǒng)連續(xù)運(yùn)行,TickCount 將在約 24.9 天內(nèi)從零遞增至 Int32. MaxValue ,然后跳至 Int32. MinValue (這是一個(gè)負(fù)數(shù)),再在接下來(lái)的 24.9 天內(nèi)遞增至零。
DWORD是無(wú)符號(hào)的,而 Environment.TickCount屬性返回的值是有符號(hào)的,所以有一半的值用負(fù)數(shù)表示!
C#準(zhǔn)確延時(shí)函數(shù)
最近一段時(shí)間用C#寫(xiě)了一個(gè)上位機(jī),由于需要用到延時(shí)函數(shù),所以給大家分享一個(gè)準(zhǔn)確延時(shí)函數(shù)
大家在網(wǎng)上一定找到過(guò)這個(gè)延時(shí)函數(shù)
用是能用,但是有一個(gè)致命問(wèn)題,就是大于一分鐘的延時(shí)會(huì)陷入無(wú)限死循環(huán),于是修改了博主師傅修改了一下,修改的原理也很簡(jiǎn)單,大家可以自己理解領(lǐng)會(huì),以下是修改的源碼:
public bool Dalay(int ms) { DateTime now = DateTime.Now; int s; do { TimeSpan spand = DateTime.Now - now; s = spand.Minutes * 60 * 1000 + spand.Seconds * 1000 + spand.Milliseconds; Application.DoEvents(); } while (s < ms); return true; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼
這篇文章主要介紹了C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼,有需要的朋友可以參考一下2013-12-12C#正則表達(dá)式匹配HTML中的圖片路徑,圖片地址代碼
最近的項(xiàng)目中有個(gè)關(guān)于網(wǎng)頁(yè)取圖的功能需要我自己開(kāi)發(fā),那就是用正則表達(dá)式來(lái)匹配圖片標(biāo)簽,這里簡(jiǎn)單介紹下實(shí)現(xiàn)方法,需要的朋友可以參考下2013-12-12C# Winform實(shí)現(xiàn)截圖工具的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用C# Winform制作一個(gè)簡(jiǎn)單的截圖工具,從而實(shí)現(xiàn)截圖功能,文中的示例代碼講解詳細(xì),有需要的可以參考下2024-02-02C#表達(dá)式樹(shù)Expression基礎(chǔ)講解
這篇文章介紹了C#表達(dá)式樹(shù)Expression和基本用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12深入理解C#索引器(一種支持參數(shù)的屬性)與屬性的對(duì)比
本篇文章是對(duì)C#索引器(一種支持參數(shù)的屬性)與屬性的對(duì)比進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06常用.NET工具(包括.NET可再發(fā)行包2.0)下載
常用.NET工具(包括.NET可再發(fā)行包2.0)下載...2007-03-03