C#中timer類的用法
1.定義在System.Windows.Forms裡
2.定義在System.Threading.Timer類裡
3.定義在System.Timers.Timer類裡
System.Windows.Forms.Timer是應用於WinForm中的,它是通過Windows訊息機制實現的,類似於VB或Delphi中的Timer控制元件,內部使用API SetTimer實現的。它的主要缺點是計時不精確,而且必須有訊息迴圈,Console Application(控制檯應用程式)無法使用。
System.Timers.Timer和System.Threading.Timer非常類似,它們是通過.NET Thread Pool實現的,輕量,計時精確,對應用程式、訊息沒有特別的要求。System.Timers.Timer還可以應用於WinForm,完全取代上面的Timer控制元件。它們的缺點是不支援直接的拖放,需要手工編碼。
例:
使用System.Timers.Timer類
//例項化Timer類,設定間隔時間為10000毫秒;
System.Timers.Timer t = new System.Timers.Timer(10000);
//到達時間的時候執行事件;
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);
t.AutoReset = true;//設定是執行一次(false)還是一直執行(true);
t.Enabled = true;//是否執行System.Timers.Timer.Elapsed事件;
====================================
自己寫的一個用System.Timer類的方法
public class BF_CheckUpdate 2 { 3 private static object LockObject = new Object(); 4 5 // 定義資料檢查Timer 6 private static Timer CheckUpdatetimer = new Timer(); 7 8 // 檢查更新鎖 9 private static int CheckUpDateLock = 0; 10 11 /// 12 /// 設定資料檢查Timer引數 13 /// 14 internal static void GetTimerStart() 15 { 16 // 迴圈間隔時間(10分鐘) 17 CheckUpdatetimer.Interval = 600000; 18 // 允許Timer執行 19 CheckUpdatetimer.Enabled = true; 20 // 定義回撥 21 CheckUpdatetimer.Elapsed += new ElapsedEventHandler(CheckUpdatetimer_Elapsed); 22 // 定義多次迴圈 23 CheckUpdatetimer.AutoReset = true; 24 } 25 26 /// 27 /// timer事件 28 /// 29 /// 30 /// 31 private static void CheckUpdatetimer_Elapsed(object sender, ElapsedEventArgs e) 32 { 33 // 加鎖檢查更新鎖 34 lock (LockObject) 35 { 36 if (CheckUpDateLock == 0) CheckUpDateLock = 1; 37 else return; 38 } 39 40 //More code goes here. 41 //具體實現功能的方法 42 Check(); 43 // 解鎖更新檢查鎖 44 lock (LockObject) 45 { 46 CheckUpDateLock = 0; 47 } 48 } 49 }
相關推薦
C#中timer類的用法
關於C#中timer類 在C#裡關於定時器類就有3個 1.定義在System.Windows.Forms裡 2.定義在System.Threading.Timer類裡 3.定義在System.Timers.Timer類裡 System.Windows.Forms.Timer是應用於Wi
C# 中Datatime類用法總結
C# 中Datatime類用法總結 收集了一些記錄下來,這些有的是從網上找的,有些是自己使用到的: DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString();
c++中stringstream 類的用法及字串與數字之間轉化
iostream標準庫支援對於記憶體的輸入輸出,只要將流與儲存在程式記憶體中的string物件捆綁在一起,就可以使用通用的輸入輸出操作符來讀寫string物件!標準庫中定義了三種類型的字串流:istringstream,由istream派生出來的,用於讀一個string的物
c++中vector類的用法
第一個元素 enc 類型 相對 tac iter 叠代器 分配 相同 概括:向量(Vector)是一個封裝了動態大小數組的順序容器(Sequence Container)。跟任意其它類型容器一樣,它能夠存放各種類型的對象。可以簡單的認為,向量是一個能夠存放任意類型的動態數組
C++中父類的虛函數必需要實現嗎?
font virt ron rtu 實現 div -a 實例對象 ont 一、情景 C++中父類的虛函數必需要實現嗎? class Vir{ public: virtual void tryVirtual(); }; class CVir:public Vir{
C++中的類模板詳細講述
技術 要求 ebe div spa 限制 dcb 模板的模板 文本文件 一、類模板定義及實例化 1. 定義一個類模板: 1 template<class 模板參數表>2 3 class 類名{4 5 // 類定義......6 7 };
C#中問號的用法
變量 ring 返回 express () operator boolean per 泛型 1. 可空類型修飾符(?): 引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空。 例如: string str=null;是正確的。 int
C#中HttpWebRequest的用法詳解
網站 default 編碼方式 對數 c# toarray collect acc like 本文實例講述了C#中HttpWebRequest的用法。分享給大家供大家參考。具體如下: HttpWebRequest類主要利用HTTP 協議和服務器交互,通常是通過 GET 和
C++中class(類)與繼承白話學習筆記
double 價格 體積 blog 示例 mes nta size ext 1.class(類) class Drink{//定義飲料類 public://public下面的東西可以被外面訪問 char* type;//飲料種類
C#中引用類的就近原則
調用 data clas body 方式 但是 項目 mysql pos 應該是使用Mysql.Data中的MySqlConnection類,但是C#語法中有一個就近原則:優先使用項目本身的類。 所以這裏兩種解決方法: 第一種:使用命名空間加類名但方式區調用; 第
C#中HashTable的用法
會有 string false border div hash 包含 tool each 首先,從命名空間開始 System.Collections 接下來進入正題. Hashtable的常用方法和屬性:
C++中基類虛析構函數的作用及其原理分析
art 收回 顯示 就是 靜態綁定 運行 style 轉載 調用父類 虛析構函數的理論前提是 執行完子類的析構函數,那麽父類的虛構函數必然會被執行。 那麽當用delete釋放一個父類指針所實例化的子類對象時,如果沒有定義虛析構函數,那麽將只會調用父類的析構函數,而不會調用子
C++中的map用法詳解
時間 占用 sort函數 數組 例程 通道 組織 sso 查找 Map是 STL的一個關聯容器,它提供一對一(其中第一個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值)的數據 處理能力,由 於這個特性,它完成有可能在我們處理一對一數據的
【轉載】 c++中static的用法詳解
ostream 並不會 style 轉載 程序員 都是 note 每次 reference 出處: http://blog.csdn.net/majianfei1023/article/details/45290467 C 語言的 static 關鍵字有三種(具體來說是
c#中this的用法及作用
sys 靜態成員 mes 成員 成員方法 read 訪問 write stat 在C#中, 1. this關鍵字代表當前實例,我們可以用this.來調用當前實例的成員方法,變量,屬性,字段等; 2. 也可以用this來做為參數狀當前實例做為參
c++中string類中的函數
str const 沒有 HR 匹配 OS 指針 第一個 size_t C/C++ string庫(string.h)提供了幾個字符串查找函數,如下: memchr 在指定內存裏定位給定字符 strchr 在指定字符串裏定位給定字符 strcspn 返回在字符串str1裏找
C++中char類型的十六進制字符串轉換成字節流
toupper 14. 轉換成 urn 類型 else con src for 如a[5]="1234"轉換成a[5]={0x12,0x34} 代碼如下: void HexStrToByte(const char* source, unsigned char* dest
C++中的類型轉換
actually new CA 對象的引用 如果 四種 表達式 clu 方式 在C++語言中,類型轉換分位兩種:隱式類型轉換 和 顯式類型轉換。 1. 隱式類型轉換 隱式轉換就是系統默認的、不需要加以聲明就可以進行的轉換。一般情
C#中父類和子類之間相互轉換
mage all spa 分享 mic ack 子類 utl round 所用到的類文件:Person.cs:Student.cs:Teacher.cs:問題1:總結:1 父類不能直接強制轉換成子類2 只有父類對象指向子類,那麽父類是可以強制轉換成子類,如果父類對象沒有指向