多執行緒裡使用單執行緒計時器

2021-08-20 03:11:59 字數 730 閱讀 3013

多執行緒裡使用單執行緒計時器

需要將主線程中的   計時器的start 和stop 方法替換為

定時器開始或停止(timer 參_定時器, bool is開始或停止)

//首先定義乙個委託

delegate void 定時器開始callback(timer 參_定時器,bool is開始或停止);

//然後 在後台執行緒中呼叫下面的函式settext

private void 定時器開始或停止(timer 參_定時器, bool is開始或停止)

if (主線程 != system.threading.thread.currentthread)//如果是後台程序,返回true,否則返回false

定時器開始callback d = new 定時器開始callback(定時器開始或停止);//將委託指向函式自己

this.invoke(d, new object );//將委託d加入委託列表,d的引數是參_定時器,這個函式做的工作就是,傳送乙個訊息到視窗訊息列表末尾,等待訊息處理函式來處理

else

if (is開始或停止 == true)

參_定時器.start();

else

參_定時器.stop();

這個方法因為呼叫了control .invoke ,這個函式存在bug,就是當存在兩個以上定時器時,會導致其中乙個計時器關閉計時.

建議使用backgroundworker將多執行緒轉入主線程後,再新增計時器

單執行緒 多執行緒

1.基於python的單執行緒示例 from time import ctime,sleep import time def play video video for i in range 2 print i am playing video s at s video,ctime sleep 5 d...

單執行緒和多執行緒

what 1.程序 當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。2.執行緒 執行緒就是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 是可以共享的,即不同的執行緒可以執行相同的函式。3.多執行緒 多執行緒是指程式中包含多個...

單執行緒和多執行緒

普通的程式預設都是單執行緒,程式的執行方式是從上至下序列執行,示例 import time deffunc a,b time.sleep 1 print a b s time.time func 5,10 func 2,5 func 6,84 func 9,46 e time.time print ...