c#的多執行緒機制探索
與threadpool類不同,timer類的作用是設定乙個定時器,定時執行使用者指定的函式,而這個函式的傳遞是靠另外乙個**物件timercallback,它必須在建立timer物件時就指定,並且不能更改。定時器啟動後,系統將自動建立乙個新的執行緒,並且在這個執行緒裡執行使用者指定的函式。下面的語句初始化了乙個timer物件: timer timer = new timer(timerdelegate, s,1000, 1000);
第乙個引數指定了timercallback**物件;第二個引數的意義跟上面提到的waitcallback**物件的一樣,作為乙個傳遞資料的物件傳遞給要呼叫的方法;第三個引數是延遲時間——計時開始的時刻距現在的時間,單位是毫秒;第四個引數是定時器的時間間隔——計時開始以後,每隔這麼長的一段時間,timercallback所代表的方法將被呼叫一次,單位也是毫秒。這句話的意思就是將定時器的延遲時間和時間間隔都設為1秒鐘。
定時器的設定是可以改變的,只要呼叫timer.change()方法,這是乙個引數型別過載的方法,一般使用的原型如下: public bool change(long, long);
下面這段**將前邊設定的定時器修改了一下: timer.change(10000,2000);
很顯然,定時器timer的時間間隔被重新設定為2秒,停止計時10秒後生效。
下面這段程式演示了timer類的用法。
using system;
using system.threading;
class timerexamplestate
//建立**物件timercallback,該**將被定時呼叫
timercallback timerdelegate = new timercallback(checkstatus);
//建立乙個時間間隔為1s的定時器
timer timer = new timer(timerdelegate, s,1000, 1000);
s.tmr = timer;
//主線程停下來等待timer物件的終止
while(s.tmr != null)
thread.sleep(0);
console.writeline("timer example done.");
console.readline();
}file://下面是被定時呼叫的方法
C 的多執行緒機制探索 3 1
c 的多執行緒機制探索 3.1 2007 04 03 15 51 三.執行緒的同步和通訊 生產者和消費者 假 設這樣一種情況,兩個執行緒同時維護乙個佇列,如果乙個執行緒對佇列中新增元素,而另外乙個執行緒從佇列中取用元素,那麼我們稱新增元素的執行緒為生產者,稱取用 元素的執行緒為消費者。生產者與消費者...
C 的多執行緒機制探索4
expression代表你希望跟蹤的物件,通常是物件引用。一般地,如果你想保護乙個類的例項,你可以使用this 如果你希望保護乙個靜態變數 如互斥 段在乙個靜態方法內部 一般使用類名就可以了。而statement block就是互斥段的 這段 在乙個時刻內只可能被乙個執行緒執行。using syst...
C 的多執行緒機制探索中
expression代表你希望跟蹤的物件,通常是物件引用。一般地,如果你想保護乙個類的例項,你可以使用this 如果你希望保護乙個靜態變數 如互斥 段在乙個靜態方法內部 一般使用類名就可以了。而statement block就是互斥段的 這段 在乙個時刻內只可能被乙個執行緒執行。using syst...