您好,登錄后才能下訂單哦!
本篇內容主要講解“C#中的延時函數怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#中的延時函數怎么使用”吧!
System.Threading.Thread.Sleep(1000); //毫秒
實現的是非獨占性延時函數,延時過時中界面仍可響應消息:
public static void Delay(int milliSecond) { int start = Environment.TickCount; while (Math.Abs(Environment.TickCount - start) < milliSecond)//毫秒 { Application.DoEvents();//可執行某無聊的操作 } }
Environment.TickCount,內部API是用DWORD GetTickCount()來實現的,該屬性的值從系統計時器派生,并以 32 位有符號整數的形式存儲。
因此,如果系統連續運行,TickCount 將在約 24.9 天內從零遞增至 Int32. MaxValue ,然后跳至 Int32. MinValue (這是一個負數),再在接下來的 24.9 天內遞增至零。
DWORD是無符號的,而 Environment.TickCount屬性返回的值是有符號的,所以有一半的值用負數表示!
最近一段時間用C#寫了一個上位機,由于需要用到延時函數,所以給大家分享一個準確延時函數
用是能用,但是有一個致命問題,就是大于一分鐘的延時會陷入無限死循環,于是修改了博主師傅修改了一下,修改的原理也很簡單,大家可以自己理解領會,以下是修改的源碼:
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; }
到此,相信大家對“C#中的延時函數怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。