.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的介面。通常...