C 多執行緒學習 五 多執行緒的自動管理 定時器

2022-09-15 10:12:10 字數 1354 閱讀 6127

timer類:設定乙個定時器,定時執行使用者指定的函式。

定時器啟動後,系統將自動建立乙個新的執行緒,執行使用者指定的函式。

初始化乙個timer物件:

timer timer = new timer(timerdelegate, s,1000, 1000);

// 第乙個引數:指定了timercallback 委託,表示要執行的方法;

// 第二個引數:乙個包含**方法要使用的資訊的物件,或者為空引用;

// 第三個引數:延遲時間——計時開始的時刻距現在的時間,單位是毫秒,指定為「0」表示立即啟動計時器;

// 第四個引數:定時器的時間間隔——計時開始以後,每隔這麼長的一段時間,timercallback所代表的方法將被呼叫一次,單位也是毫秒。指定 timeout.infinite 可以禁用定期終止。

timer.change()方法:修改定時器的設定。(這是乙個引數型別過載的方法)

使用示例:  timer.change(1000,2000);

using

system;

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...