timer類:設定乙個定時器,定時執行使用者指定的函式。
定時器啟動後,系統將自動建立乙個新的執行緒,執行使用者指定的函式。
初始化乙個timer物件:
timer timer = new timer(timerdelegate, s,1000, 1000);
// 第乙個引數:指定了timercallback 委託,表示要執行的方法;
// 第二個引數:乙個包含**方法要使用的資訊的物件,或者為空引用;
// 第三個引數:延遲時間——計時開始的時刻距現在的時間,單位是毫秒,指定為「0」表示立即啟動計時器;
// 第四個引數:定時器的時間間隔——計時開始以後,每隔這麼長的一段時間,timercallback所代表的方法將被呼叫一次,單位也是毫秒。指定 timeout.infinite 可以禁用定期終止。
timer.change()方法:修改定時器的設定。(這是乙個引數型別過載的方法)
使用示例: timer.change(1000,2000);
usingsystem;
using
system.threading;
namespace
threadexample
class
public
static
void
main()
//下面是被定時呼叫的方法
static
void
checkstatus(object state) checking status .
", datetime.now.timeofday, s.counter);
if (s.counter == 5
)
if (s.counter == 10
) }
}}
程式首先建立了乙個定時器,它將在建立1秒之後開始每隔1秒呼叫一次checkstatus()方法,當呼叫5次以後,在checkstatus()方法中修改了時間間隔為2秒,並且指定在10秒後重新開始。當計數達到10次,呼叫timer.dispose()方法刪除了timer物件,主線程於是跳出迴圈,終止程式。
c#多執行緒學習系列:
c#多執行緒學習(一) 多執行緒的相關概念
c#多執行緒學習(二) 如何操縱乙個執行緒
c#多執行緒學習(三) 生產者和消費者
c#多執行緒學習(四) 多執行緒的自動管理(執行緒池)
c#多執行緒學習(五) 多執行緒的自動管理(定時器)
c#多執行緒學習(六) 互斥物件
C 多執行緒學習 四 多執行緒的自動管理 執行緒池
在多執行緒的程式中,經常會出現兩種情況 一種情況 應用程式中,執行緒把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應 這一般使用threadpool 執行緒池 來解決 另一種情況 執行緒平時都處於休眠狀態,只是周期性地被喚醒 這一般使用timer 定時器 來解決 threadpool...
C 多執行緒學習 四 多執行緒的自動管理 執行緒池
在多執行緒的程式中,經常會出現兩種情況 一種情況 應用程式中,執行緒把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應 這一般使用threadpool 執行緒池 來解決 另一種情況 執行緒平時都處於休眠狀態,只是周期性地被喚醒 這一般使用timer 定時器 來解決 threadpool...
C 多執行緒學習 四 多執行緒的自動管理 執行緒池
在多執行緒的程式中,經常會出現兩種情況 一種情況 應用程式中,執行緒把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應 這一般使用threadpool 執行緒池 來解決 另一種情況 執行緒平時都處於休眠狀態,只是周期性地被喚醒 這一般使用timer 定時器 來解決 threadpool...