BaseHandler timer介面改進

2021-08-19 22:20:36 字數 767 閱讀 5183

.basehandler的timer介面可以改進一下

現在是long basehandler::settimer(uint timerid, uint interval)

long basehandler::killtimer(uint timerid);

void ontimer(uint timerid);

這樣存在乙個問題:timerid由class自行指定,而子類有可能不知道基類的內部實現

當基類和子類恰好選用了相同的timerid來做不同的業務,就會導致bug

改進辦法:可改為

long settimer(int ms);

void killtimer(long timerid);

void ontimer(long timerid);

約定0是無效timerid

<0為框架保留timerid

每個類都有成員變數來快取timerid,比如

long mtimerkeepalive=0;

long mtimercheckframe=0;

mtimertest=settimer(1000);

mtimercheckframe=settimer(20);

在ontimer(long timerid)中

if(timerid == mtimertest )

else if(timerid == mtimercheckframe)

這樣的好處是避免手工分配固定timerid,基類和子類的timerid絕對不會重複導致衝突

用介面實現通過改外部檔案實現判斷呼叫介面內的方法

region 第一種做法 氣泡排序 string temp for int i 0 i arraystring.length i endregion region 第二種做法 高效做法 string max1 string.empty for int i 0 i arraystring.length...

oracle改字型大小 sqlplus改字型

sqlplus font,其值為 terminal sqlplus font size,其值為14,或其他大小的值,如16 18等。問題3 在sql plus中改變字型和字符集 問題描述 有時,sql plus中顯示的資料字型太小,怎樣改變sql plus中顯示的字型大小?問題分析 oracle中所...

電腦改ip怎麼改

電腦改ip怎麼改?首先右鍵開啟電腦螢幕右下方的網路連線的圖示,選擇開啟網路和共享中心。在網路和共享中心當中點選網路連線連線狀態中的本地連線,可以進入本地連線狀態。在本地連線狀態中點選屬性,進入本地連線的管理狀態。在本地連線屬性當中可以看到兩個協議版本,雙擊它們可以看到更改ip位址和dns的介面。通常...