如果你開發過win32應用程式,你應該知道設定定時器是它api中的一部分。在這種情況下,你必須建立乙個window來接收wm_timer的訊息。我們所面臨的第乙個問題是,建立乙個window來接收訊息,但你卻無法控制台應用程式中應用。其二,基於訊息的執行有時不是很精確,並且如果你的應用程式要處理很多訊息時,那情況將是很糟糕的。
一種改進方法是在win32定時器的基礎上,為每乙個定時器建立乙個執行緒,並讓它sleep一段時間,當到達定時時,就呼叫相應的方法。這種方式,使我們擺脫了windows的訊息機制。能夠更精確並能用於控制台程式。通用**如下:
}class mytimer
void timerthread()
void ontimer()
}下面這種方法更好:
static void ontimer(object obj)
thread: is pool thread: ",
(int)obj,
thread.currentthread.gethashcode(),
thread.currentthread.isthreadpoolthread);}}
the output will be the following:
timer: 1 thread: 2 is pool thread: truetimer: 2 thread: 2 is pool thread: true
timer: 1 thread: 2 is pool thread: true
timer: 2 thread: 2 is pool thread: true
timer: 1 thread: 2 is pool thread: true
timer: 1 thread: 2 is pool thread: true
timer: 2 thread: 2 is pool thread: true
Python的定時器與執行緒池
timer interval,function,args none,kwargs none interval 時間間隔 單位為s function 定製執行的函式 start 為通用的開始執行方法 cancel 為取消執行的方法 from threading import timer import ...
執行緒定時器
定時器 timer類 schedule timertask物件,時間 定時排程 時間一到,他會執行timertask物件裡面的run方法。例項 10秒後該run方法執行 public class traditionaltimertest 1 0000 這個時間也可以設定成乙個具體時間,比如幾月幾號幾...
執行緒定時器設計2
對以上 做一下解釋 estopmode 定時器停止模式。1 ttmanuale 手動模式,定時器停止後,使用者需要顯示呼叫stop關閉定時器,或者呼叫restart重啟定時器。如果使用者不做處理,則 定時器將一直超時下去。再每個判定週期,都將超時。例如 設定10秒的定時器,在10秒後,如果使用者不做...