C 的多執行緒機制探索

2021-04-26 08:33:36 字數 1419 閱讀 7693

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