小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

按鍵精靈中并沒有計時器,自己制作可調(diào)用的多線程計時器!

 本明書館 2018-09-12
按鍵精靈中并沒有計時器,如果我們需要執(zhí)行某個操作10秒鐘,這樣將會很麻煩,因為程序要么停下來只是數(shù)過了幾秒,要么就嗖嗖嗖的跑程序不知道跑多久,我們需要它一邊計時的同時跑程序,所以需要計時器控制程序,做到某段程序僅執(zhí)行一定的時間。好了,進入正題!

Global k //全局變量k,用于在計時結(jié)束時給個信號已結(jié)束下面的循環(huán)
k=0
BeginThread time // 啟動線程time
Delay 100 
i=0
While k = 0
    Delay 1000
    TracePrint "過了 " & i & " 秒!"
    TracePrint "K值為 " & k & " !"//僅僅表示程序在跑While時候同時在跑sub time計時
    i=i+1
Wend

Sub time() //作為線程函數(shù)
    k = Lib.MyTool.Timer(5000, 10) //函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),設(shè)置為執(zhí)行5秒,結(jié)束后Tiemr返回 10 故過5秒后k=10
End Sub

/************下面函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù)***************/
Function Timer(time,n)//time為需要計時時間,n為計時結(jié)束后返回的值,需要n的原因在于作為標號,結(jié)束時根據(jù)標號判斷結(jié)束的是哪一段程序,方便調(diào)試及編程
T1 = Plugin.Sys.GetTime//獲取執(zhí)行前系統(tǒng)時間
t=0
While time >= t
T2 = Plugin.Sys.GetTime//執(zhí)行時刻時間監(jiān)測
t = T2 - T1
Wend
Timer = n
End Function


好了,有同學可能覺得程序中為了計時器加這個代碼亂,其實我也這么覺得,所以我后面把他們都封裝起來直接調(diào)用~
下面看!
  1. i = 0 //僅為了顯示個東西,沒具體含義
  2. k = 0 // 循環(huán)運行信號
  3. Call Lib.MyTool.Timer(5000) // 函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),下面有說,調(diào)用了計時器,開始后臺計時
  4. While k = 0
  5.     Delay 1000
  6.     i=i+1
  7.     k = Lib.MyTool.TimerF(k,10) // 函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),下面有說,調(diào)用計時器的監(jiān)視函數(shù),實時檢查時間到了沒
  8.     TracePrint i
  9. Wend
復制代碼
改進后的計時器這樣就用上了,是不是覺得很清爽~
主要代碼就兩句,就可以實現(xiàn)多線程計時器,一個是啟用計時,一個是獲取結(jié)束計時時候的返回值。
Call Lib.MyTool.Timer(計時時間)
Lib.MyTool.TimerF(循環(huán)體循環(huán)數(shù),自定義返回數(shù))
  1. Global Time_k //計時器本身運行信號
  2. Global Time_t //計時器計時的實時時間
  3. Time_k=0 // 為0 時是時間未到,繼續(xù)計時,為 1 是到時,停止計時通知監(jiān)視函數(shù)返回數(shù)據(jù)

  4. Sub Timer請使用subTimer //至于這個詭異的函數(shù)名,我是怕自己什么時候不小心調(diào)用錯了、、、
  5. T1 = Plugin.Sys.GetTime//獲取執(zhí)行前系統(tǒng)時間
  6. t=0
  7. While Time_t >= t
  8. T2 = Plugin.Sys.GetTime//執(zhí)行時刻時間監(jiān)測
  9. t = T2 - T1
  10. Wend
  11. Time_k = 1
  12. End Sub

  13. Sub Timer(time)
  14. Time_t = time
  15.     BeginThread Timer請使用subTimer
  16.     Delay 100
  17. End Sub

  18. Function TimerF(i,j) // i計時器一般用于循環(huán) i 為調(diào)用函數(shù)循環(huán)體的循環(huán)數(shù), j 為自定義返回值,靈活使用
  19.     If Time_k = 0 Then 
  20.         TimerF = i
  21.     Else 
  22.         TimerF = j
  23.     End If
  24. End Function
復制代碼
好了~結(jié)束。

存在問題,不知道按鍵創(chuàng)建進程是否會自動銷毀進程,不然運行時間長的話會出問題。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多
    喜歡該文的人也喜歡 更多
    熱門閱讀 換一換